我需要将数字四舍五入到小数点后两位。 现在,以下几轮到最接近的整数我猜
puts [expr {round($total_rate)}]
如果我做了类似下面的事情,它就不起作用了。还有另外一种方法吗?
puts [expr {round($total_rate,2)}]
答案 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。