我是 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
您需要通过确保其中一个或两个值都是双精度值(例如使用双精度($a)和/或双精度($b))来确保进行浮点除法。然后使用格式最容易四舍五入到一定数量的十进制数字:
format %.2f [expr {double($a) / $b}]