圆数到小数点后2位

时间:2012-04-18 15:02:23

标签: tcl rounding

我需要将数字四舍五入到小数点后两位。 现在,以下几轮到最接近的整数我猜

puts [expr {round($total_rate)}]

如果我做了类似下面的事情,它就不起作用了。还有另外一种方法吗?

puts [expr {round($total_rate,2)}]

3 个答案:

答案 0 :(得分:14)

舍入到特定小数位数的最简单方法是使用format

puts [format "%.2f" $total_rate]

请注意,如果您使用舍入值进行进一步计算而不是显示给用户,则使用舍入到 X 小数位数打印的大多数值将不具有二进制算术中的精确表示(Tcl在内部使用,就像大量其他编程语言一样)。最好将舍入到特定数量的DP保留到您向人们展示价值的位置。

答案 1 :(得分:12)

expr {double(round(100*$total_rate))/100}

例如

% set total_rate 1.5678
1.5678
% expr {double(round(100*$total_rate))/100}
1.57
% set total_rate 1.4321
1.4321
% expr {double(round(100*$total_rate))/100}
1.43

答案 2 :(得分:2)

puts [format "%.2f" $total_rate]

通过使用格式,我们可以在输出中看到结果,但是如何在程序中使用相同的值,即我们可以在输出中看到1.448为1.45但是我们可以在程序中使用1.45。