尽管双倍存储,除法问题仍导致零
在数值运算中,考虑所涉及操作数的类型非常重要。使用浮点数时,可能需要显式类型转换以避免意外结果。
在提供的代码片段中,使用整数操作数执行 3 和 5 之间的除法运算,从而导致整数除法。这导致商为零。为了获得所需的浮点除法,有必要将至少一个操作数显式转换为 double 类型。更正后的代码如下:
#include <iostream> int main(int argc, char** argv) { double f = 3.0 / 5; std::cout << f; return 0; }
通过将 3 转换为双精度型 (3.0),编译器执行浮点除法,产生预期的非零值。这凸显了在数值运算中注意操作数类型以获得准确结果的重要性。
以上是为什么整数除以 3 除以 5 结果为零?的详细内容。更多信息请关注PHP中文网其他相关文章!