我正在尝试运行一个循环 1 + 1/3 + 1/5 - 1/7 + 1/9 ....等等
但它一直显示为 1!
我试过了
double answer = 1 + 1/3 + 1/5 - 1/7 + 1/9 - 1/11;
displays 1
数学很奇怪,就像我什至搞砸并尝试过
double answer = 1 / 5; //should display 0.2
displays 0!!!!!!!!
我正在尝试运行一个循环 1 + 1/3 + 1/5 - 1/7 + 1/9 ....等等
但它一直显示为 1!
我试过了
double answer = 1 + 1/3 + 1/5 - 1/7 + 1/9 - 1/11;
displays 1
数学很奇怪,就像我什至搞砸并尝试过
double answer = 1 / 5; //should display 0.2
displays 0!!!!!!!!
您正在使用整数数学。
两个整数之间的运算结果将是一个整数,向 0 舍入。
所以你的代码变成:
double answer = 1 + 0 + 0 - 0 + 0 - 0;
试试这个。
double answer = 1.0 + 1.0/3.0 + 1.0/5.0 - 1.0/7.0 + 1.0/9.0 - 1.0/11.0;
因为您使用的是整数文字。试试这个:
double answer = 1 + 1/3.0 + 1/5.0 - 1/7.0 + 1/9.0 - 1/11.0;
在 C++ 中,当您将一个整数除以另一个时,您会得到一个整数。因此,1/3
等于0
。
尝试:
double answer = 1 + 1/3.0 + 1/5.0 - 1/7.0 + 1/9.0 - 1/11.0;
该操作对整数常量起作用,然后将结果转换为双精度。您应该如下定义常量:
double answer = 1.0 + 1.0/3.0 + 1.0/5.0 - 1.0/7.0 + 1.0/9.0 - 1.0/11.0;
尝试 1.0/3.0 等。
否则,每个子表达式将计算为 0,因为它们被解释为整数。