Prévenir Les Mathématiques.Round(95.55555555,2) de l'arrondissement de 95.56 dans VB.NET
Si je ne Math.Round(95.55555555,2)
dans VB.NET le résultat est 95.56
, mais je veux qu'il le résultat de l'être 95.55
. Est-il un moyen de le faire dans VB.NET? Je suppose que j'ai juste envie de garder le nombre de décimales, mais pas autour d'eux
La question est: qu'est-ce que votre précision l'état d'arrondir à 95.55 plutôt que 95.56? Si c'est seulement une question de la limite à partir de laquelle point de tour à la moindre plutôt que de la plus grande, il est trivial d'écrire votre propre fonction d'arrondi, je pense. Je ne vais pas essayer, je ne suis pas vraiment friand de VB... 🙂 Mais être prudent avec les effets de la frontière...
Voudriez-vous
On dirait que vous n'êtes pas en train de vouloir un rond, mais plutôt un truncate.
Oui, en gros, je veux tronquée, mais gardez à deux décimales.
Voudriez-vous
Math.Round(95.55666666,2)
à tour de 95.55 ou 95.56? Êtes-vous réellement en arrondi ou tout simplement couper au bout de x de précision?On dirait que vous n'êtes pas en train de vouloir un rond, mais plutôt un truncate.
Oui, en gros, je veux tronquée, mais gardez à deux décimales.
OriginalL'auteur Xaisoft | 2011-03-30
Vous devez vous connecter pour publier un commentaire.
Ressemble
Math.Truncate(95.5555555 * 100) /100
.Voir Tronquer un nombre Décimal ne pas arrondir
OriginalL'auteur Michael Blake
Essayez d'utiliser
Math.Floor(95.55555555 * 100) /100
Ou, si vous voulez arrondir à un nombre de décimales:
Floor(95.5555555... * 100) = 9555
, et9555/100 = 95.55
.Désolé de vous avoir une bonne réponse 😉 +1
Une question que j'ai est ce que si je voulais tronquée à 3 décimales, comment est-ce que changer les Mathématiques.Sol ou les Mathématiques.Méthode tronquer. Par exemple, je veux 95.5556 être 95.555.
Après avoir regardé une question similaire, est-il juste de faire quelque chose comme les Mathématiques.Étage de la valeur (* 1000) / 1000; pour garder 3 décimales.
Yep, c'est exactement la façon dont vous le feriez pour 3 décimales.
OriginalL'auteur Rob
Il y a plusieurs façons de le faire. L'une serait de soustraire 0,05 à partir de la numéro, puis utiliser
Math.Round(number, 2)
. (Cela fonctionne sur le même principe que la mise en œuvre defloor
etceiling
fonctions lorsque tout ce que vous avez estround
.)Une meilleure façon de procéder est probablement
Que juste multiplie le nombre par 100 et tronque, vous donnant une valeur de type entier avec les chiffres que vous voulez, puis divise par 100 de tourner dos à une décimale.
L'étage est utilisé pour arrondir. Tronquer coupe juste. Plafond arrondi
Étage arrondit toujours vers le bas, de sorte que vous verrez une différence si votre valeur est négative.
Ils sont deux opérations différentes qui renvoient le même résultat, dans ce cas.
Floor()
renvoie l'entier le plus proche de la valeur plus petite que celle de l'entrée (mais pas nécessairementInteger
type), alors queTruncate()
côtelettes d'enlever tout ce qui est après la virgule. Ils sont différents dans leur façon de gérer les nombres négatifs.OriginalL'auteur Bill the Lizard
Vous ne voulez pas de faire des Mathématiques.La ronde. Vous voulez en Mathématiques.Tronquer.
Votre résultat sera 95.55.
OriginalL'auteur Geo Ego
Vous pouvez utiliser ceci:
désolé c'est le C#, mais vous pouvez facilement le deviner comment traduire en vb je pense.
OriginalL'auteur Felice Pollano
OriginalL'auteur Paul Ishak