printf 函数有某种函数,您可以在其中使用 %g,3
如果浮点数为 3.00,它将显示整数并显示3.01
它是否实际上是浮点数,有什么方法可以通过一些代码来做到这一点?
问问题
11466 次
1 回答
8
真的没有一个简单的答案
整数值确实具有浮点和双精度格式的精确表示。所以,如果它真的已经是不可或缺的,你可以使用:
f == floor(f)
但是,如果您的值是计算的结果,该计算在某一时刻涉及任何类型的非零小数部分,那么您将需要担心您可能有一些非常接近整数的东西,但实际上并不完全正确, 到最后一位相同。您可能希望将其视为不可分割的。
一种可以做到这一点的方法:
fabs(f - round(f)) < 0.000001
当我们讨论这个主题时,对于纯粹主义者来说,我们应该注意int i = f;
ordouble i = f;
将根据 FPU 模式进行舍入,而round(3)将舍入远离零的中途情况。
于 2013-03-09T17:40:59.500 回答