我知道浮点数具有精度,精度后的数字不可靠.
但是如果用于计算数字的等式是相同的呢?我可以假设结果也一样吗?
例如,我们有两个浮点数x和y.我们可以假设x/y机器1的结果与机器2的结果完全相同吗?IE ==比较将返回true
有一种我无法理解的奇怪行为.同意浮点数是近似值,因此即使显然返回没有十进制数的数的运算也可以近似为带小数的运算.
我这样做:
int num = (int)(195.95F * 100);
Run Code Online (Sandbox Code Playgroud)
因为它是一个浮点运算,我得到19594而不是19595 ..但这是正确的.
令我困惑的是,如果我这样做
float flo = 195.95F * 100;
int num = (int) flo;
Run Code Online (Sandbox Code Playgroud)
我得到19595的正确结果.
知道为什么会这样吗?