我正在使用 ceil() 函数将浮点计算的结果四舍五入到最接近的整数。经历了各种不同的输入...
int(ceil(A*B))
这里有一些例子来说明这个问题:
int(ceil(1.01*100)) = 101
int(ceil(1.02*100)) = 102
int(ceil(1.03*100)) = 103
int(ceil(1.04*100)) = 104
int(ceil(1.05*100)) = 105
int(ceil(1.06*100)) = 106
int(ceil(1.07*100)) = 107
int(ceil(1.08*100)) = 108
int(ceil(1.09*100)) = 110 ***
int(ceil(1.10*100)) = 111 ***
int(ceil(1.11*100)) = 112 ***
int(ceil(1.12*100)) = 113 ***
int(ceil(1.13*100)) = 113
我意识到这与正在执行的浮点计算有关......
1.09*100 = 109.000000.... > 109
我不知道如何可靠地捕获这个错误
尽管我有几种“粗略”的方法,例如下面概述的方法,但我认为这不是一个足够强大的解决方案
int(ceil((1.09*100)-0.00000001)) = 109