有人可以用Python解释这种行为吗?

时间:2019-07-29 00:18:08

标签: python integer double

有人可以解释这种行为吗?

print("%.2f" % (model.x[1].value))
X = int(model.x[1].value)
print("%.2f" % X)

输出:

3.00
2.00

谢谢

2 个答案:

答案 0 :(得分:2)

model.x[1].value小于3但> = 2.995时,当打印到小数点后2位时,它将舍入到3.00。但是,当您应用int函数时,它将被截断为值2的整数,当与2.00格式一起使用时,它将打印为.2f

>>> x = 2.994
>>> print(f"{x:.2f}")
2.99

>> x = 2.995
>>> print(f"{x:.2f}")
3.00

答案 1 :(得分:0)

谢谢大家。该值确实不是整数。我被混合整数非线性编程求解器所迷惑。看来它本身并不能将解决方案四舍五入为整数。