有人可以解释这种行为吗?
print("%.2f" % (model.x[1].value))
X = int(model.x[1].value)
print("%.2f" % X)
输出:
3.00
2.00
谢谢
答案 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)
谢谢大家。该值确实不是整数。我被混合整数非线性编程求解器所迷惑。看来它本身并不能将解决方案四舍五入为整数。