由于某些原因,ceil(x)
将舍入的数字四舍五入为x + 1。
例如:
double og_grade = 50;
double fact_grade = ceil(og_grade*1.1);
[og_grade*1.1
应该为55.0000,但是ceil(og_grade*1.1)
返回56.0000
请注意,og_grade
始终是整数。
我尝试了ceil(x)函数,但是由于某种原因,当x in已经 一轮,将其向上舍入为x + 1
[这不意味着ceil
的实现有缺陷。不是不可能,但极端不太可能。
[观察到这种效果的x
实际上可能不是整数,并且格式化或调试器中省略了小数部分。
假设为IEEE754,则double
到1.1的值稍大于此值;这最有可能说明您的结果。在您的情况下,考虑到op_grade
实际上是整数,最好的选择是将int
用作op_grade
,然后乘以11;随后进行的舍入检查既琐碎又精确。