例如,0、0.5、0.15625、1、2、3等是从IEEE 754转换而来的值。它们的硬编码版本是否精确?
例如:
是
例如:
是
float a=0;
if(a==0){
return true;
}
始终返回 true 吗?其他示例:
float a=0.5;
float b=0.25;
float c=0.125;
a * b 是否总是等于 0.125,a * b == c 是否总是成立?再举一个例子:
int a=123;
float b=0.5;
乘积 a * b 是否总是等于 61.5?或者通常情况下,整数与 IEEE 754 二进制浮点数相乘是否精确?
又或者更一般地问,如果值是硬编码并且值和结果都可以用 IEEE 754 的二进制格式表示(例如:0.5 - 0.125),那么该值是否精确?