我需要将数字四舍五入到小数点后两位.现在以下几轮到我猜的最接近的整数
puts [expr {round($total_rate)}]
Run Code Online (Sandbox Code Playgroud)
如果我做下面的事情就行不通.还有另外一种方法吗?
puts [expr {round($total_rate,2)}]
Run Code Online (Sandbox Code Playgroud)
Don*_*ows 15
舍入到特定小数位数的最简单方法是format:
puts [format "%.2f" $total_rate]
Run Code Online (Sandbox Code Playgroud)
请注意,如果您使用舍入值进行进一步计算而不是显示给用户,那么使用舍入到X小数位数打印的大多数值将不会在二进制算术中具有精确表示(Tcl在内部使用,就像大量的其他编程语言).最好将舍入到特定数量的DP保留到您向人们显示值的位置.
gle*_*man 13
expr {double(round(100*$total_rate))/100}
Run Code Online (Sandbox Code Playgroud)
例
% 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
Run Code Online (Sandbox Code Playgroud)