tour de nombre à 2 décimales
J'ai besoin d'arrondir un nombre à deux décimales.
Maintenant les tours suivants à l'entier le plus proche je suppose que
puts [expr {round($total_rate)}]
Si je fais quelque chose comme ci-dessous cela ne fonctionne pas. Est-il une autre façon de contourner?
puts [expr {round($total_rate,2)}]
Vous ne pouvez pas rond point flottant à n'importe quel nombre de chiffres après la virgule est supérieur à zéro. Il n'a pas de décimales. Il a binaire place, et ils sont incommensurables. Vous avez besoin d'utiliser une virgule radix, généralement par le biais d'un formateur.
OriginalL'auteur Micheal | 2012-04-18
Vous devez vous connecter pour publier un commentaire.
exemple
proc tcl::mathfunc::roundto {value decimalplaces} {expr {round(10**$decimalplaces*$value)/10.0**$decimalplaces}}; expr {roundto($total_rate, 2)}
OriginalL'auteur glenn jackman
La façon la plus simple pour arrondir à un nombre de décimales est avec
format
:Être conscient que si vous utilisez la valeur arrondie pour plus de calculs au lieu de s'afficher pour les utilisateurs, la plupart des valeurs que vous imprimez à l'aide de l'arrondissement de X décimales n'aura pas une représentation exacte de l'arithmétique binaire (Tcl utilise en interne, comme un grand nombre de d'autres langages de programmation). Il est préférable de réserver à l'arrondi à un nombre de DPs au point où vous vous sentez à l'affichage des valeurs des gens.
OriginalL'auteur Donal Fellows
À l'aide de format, nous pouvons voir le résultat en sortie, mais comment faire pour utiliser la même valeur dans le programme, c'est à dire, nous pouvons voir 1.448 comme 1,45 dans la production, mais peut-on utiliser 1,45 dans le programme.
OriginalL'auteur Subha K anta Swain