关于乘以存储为双精度的整数的精度

时间:2018-01-30 18:27:58

标签: floating-point precision ieee-754

我有这样的代码:

double x = ...;
double y = ...;
double z = x * y;

假设x和y分配给整数(例如,double x = 6,double y = 5),x * y适合48位。我保证z不会失去精确度吗?换句话说,z - floor(z) == 0.0

假设编译器使用IEEE-754标准,并且双重使用64位。

1 个答案:

答案 0 :(得分:1)

是的,保证不会失去精确度。浮点的基本规则是,精确计算结果,然后尽可能地存储。由于最多2 ^ 53的所有整数都可以准确表示,z将是准确的。