2010-07-02 6 views
6

J'utilise C#, chaque fois que j'insère 3 décimales, le nombre est arrondi, par ex.Comment puis-je empêcher l'arrondissement des nombres décimaux?

1,538

tours

à 1,54

Je veux que le numéro soit comme il est par exemple 1,53 (à deux décimales seulement sans arrondi).

Comment puis-je le faire?

+6

Il est difficile de répondre à votre question sans plus d'informations. Où insérez-vous les décimales et comment l'imprimez-vous? Très probablement, le nombre est stocké correctement mais la façon dont vous l'imprimez, seulement 2 décimales apparaissent. – casablanca

+2

Math.Truncate() pourrait éventuellement vous aider, mais nous avons besoin de plus d'informations. – CrimsonX

+2

Cela nécessite certainement plus d'informations, comme dire l'extrait de code qui produit les résultats énumérés. –

Répondre

6

Je crois que vous voulez utiliser Math.Truncate()

float number = 1.538 
number = Math.Truncate(number * 100)/100; 

truncate élaguer le bit final. Cependant, gardez à l'esprit de faire attention avec les nombres négatifs.

Cela dépend si vous voulez toujours arrondir vers 0, ou juste couper la fin, Math.Floor sera toujours arrondi vers le bas vers l'infini négatif. Voici a post on the difference entre les deux.

3

Trouvé this lien qui donne un bon extrait de code pour vous permettre de spécifier le nombre de décimales que vous voulez comme Math.Round() le permet.

Fondamentalement, il est ceci: -

public static double Floor(this double d, int decimals) { 
    return Math.Floor(d * Math.Pow(10, decimals))/Math.Pow(10, decimals); 
} 
Questions connexes