-1

我是 tcl 的新手,我有这些数字:

set a 565056236086 set b 488193341805

的输出 $a / $b是 1,157443552992375

当我使用以下代码时

set num [expr {double(round(100*$a / $b))/100}]

输出为:1,15

但我想要 1.16 我怎么能像那样舍入它?

4

2 回答 2

2

在进行操作之前,您需要先进行一次ab两次。此外,返回一个整数,因此您也需要将其转换为双精度数,或者除以双精度数: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
于 2019-07-22T10:08:29.547 回答
0

您需要通过确保其中一个或两个值都是双精度值(例如使用双精度($a)和/或双精度($b))来确保进行浮点除法。然后使用格式最容易四舍五入到一定数量的十进制数字:

format %.2f [expr {double($a) / $b}]
于 2019-07-22T10:27:59.923 回答