使用分数正确初始化double?

时间:2016-11-17 12:19:08

标签: c++ floating-point variable-assignment

请考虑以下代码:

double foo;
foo = 1/35;

foo会等于0.02857142857(小数约为1/35)还是0(整数除法)?这个代码是否可移植,换句话说是定义的,保证的行为,当将像1/35这样的东西分配给double时,会执行浮点除法吗?

1 个答案:

答案 0 :(得分:0)

您的代码正在执行整数除法(右侧)。 为了确保你进行适当的双重除法,除数和除数之一必须是双重的。

你可以用以下方法修复它:

foo = 1d/35;