我需要将一个数字四舍五入到小数点后两位。现在,我猜以下四舍五入到最接近的整数
puts [expr {round($total_rate)}]
如果我做类似下面的事情它不起作用。还有其他方法吗?
puts [expr {round($total_rate,2)}]
四舍五入到特定小数位数的最简单方法是format
:
puts [format "%.2f" $total_rate]
请注意,如果您使用舍入值进行进一步计算而不是显示给用户,则使用舍入到X位小数位打印的大多数值将不会在二进制算术中具有精确表示(Tcl 在内部使用,如大量其他编程语言)。最好将四舍五入保留到特定数量的 DP,直到您向人们展示价值。
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
puts [format "%.2f" $total_rate]
通过使用格式,我们可以在输出中看到结果,但是如何在程序中使用相同的值,即,我们可以在输出中看到 1.448 和 1.45,但我们可以在程序中使用 1.45。