积分值确实具有float和double格式的精确表示.所以,如果它确实已经是不可或缺的,你可以使用:
f == floor(f)
Run Code Online (Sandbox Code Playgroud)
但是,如果你的值是一个计算的结果,在某一点上涉及任何类型的非零小数部分,那么你需要担心你可能有一个非常接近整数的东西,但这不是真的,确切的,最后一点相同.你可能想要认为这是不可或缺的.
这可能是一种方式:
fabs(f - round(f)) < 0.000001
Run Code Online (Sandbox Code Playgroud)
虽然我们在这个主题上,但对于纯粹主义者来说,我们应该注意到int i = f;或者double i = f;将根据FPU模式进行舍入,而round(3)将使中途情况远离零.