标签: c++ floating-point variable-assignment
请考虑以下代码:
double foo; foo = 1/35;
foo会等于0.02857142857(小数约为1/35)还是0(整数除法)?这个代码是否可移植,换句话说是定义的,保证的行为,当将像1/35这样的东西分配给double时,会执行浮点除法吗?
foo
0.02857142857
0
答案 0 :(得分:0)
您的代码正在执行整数除法(右侧)。 为了确保你进行适当的双重除法,除数和除数之一必须是双重的。
你可以用以下方法修复它:
foo = 1d/35;