我正在尝试运行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 :(得分:7)
您正在使用整数数学。
两个整数之间的操作结果将是一个整数,向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;
答案 1 :(得分:3)
因为您使用的是整数文字。试试这个:
double answer = 1 + 1/3.0 + 1/5.0 - 1/7.0 + 1/9.0 - 1/11.0;
答案 2 :(得分:2)
在C ++中,当你将一个整数除以另一个整数时,你得到一个整数。因此,1/3
等于0
。
尝试:
double answer = 1 + 1/3.0 + 1/5.0 - 1/7.0 + 1/9.0 - 1/11.0;
答案 3 :(得分:2)
操作对整数常量起作用,然后结果转换为double。您应该按如下方式定义常量:
double answer = 1.0 + 1.0/3.0 + 1.0/5.0 - 1.0/7.0 + 1.0/9.0 - 1.0/11.0;
答案 4 :(得分:2)
尝试1.0 / 3.0等
否则,每个子表达式将被计算为0,因为它们被解释为整数。