我认为标题说明了一切。我想将变量i定义为1/12分数。但是,我是0。
double i = 1/12;
std::cout << i; // Output: 0
或者,更具体地说,我想计算某事的力量:
im_ = std::pow((1 + i), (1/12)) - 1;
但是,编译将(1/12)
评估为0,因此结果是错误的。
答案 0 :(得分:1)
简单,因为1/12
被评估为整数数学,而不是浮点数学。
1/12
变为0,因为整数数学不考虑小数部分。
要获得预期的结果,您需要将数字写为浮点字面值,如下所示:1.0/12.0
。
可在此处找到更多详细信息:Why can't I return a double from two ints being divided