我是tcl的新手,我有这些数字:
set a 565056236086
set b 488193341805
$a / $b
的输出为 1,157443552992375
当我使用以下代码时
set num [expr {double(round(100*$a / $b))/100}]
输出为:1,15
但是我想要 1.16 我怎么能这样四舍五入?
执行操作之前,您需要将a
或b
设为双精度。此外,round
返回一个整数,因此您需要将其转换为双精度,或者除以双精度:
set num [expr {round(100*double($a) / $b)/100.0}]
# 1.16
或者,如果您特别需要四舍五入,则可以使用 ceil
(由于这个返回双精度,因此不需要除以双精度(:
set num [expr {ceil(100*double($a) / $b)/100}]
# 1.16
确保其中一个值或两个值都是双精度值(例如,使用 double($a( 和/或 double($b((来确保你正在执行浮点除法。然后四舍五入到一定数量的十进制数字最容易使用格式完成:
format %.2f [expr {double($a) / $b}]