很难解释,但就是这样。在java代码中,我使用了一个双数,但这个数字最后得到的数字非常小,我不想要。也许我需要用更好的方法来得到剩余的。
这是代码:
public class MyClass {
public static void main(String args[]) {
String vRetour = "";
Boolean valeurTrouve = false;
double chiffre = .08 ;
double valeurTravailDouble = 0;
long vIntegerPart = 0;
while (! valeurTrouve) {
for (int i = 0; i<101;i++) {
valeurTravailDouble = chiffre * 8;
vIntegerPart = (long) valeurTravailDouble;
vRetour = vRetour + vIntegerPart;
if ((valeurTravailDouble - vIntegerPart) == 0) {
valeurTrouve = true;
break;
}
chiffre = (valeurTravailDouble - vIntegerPart);
System.out.println(i + " = " + chiffre);
}
}
}
}
问题是在最后,我有像第 1 行那样不需要的数字,最后我有一个 1。在第 2 行之后,我有一个 9。但是这个数字的增加和增加在第 17 行给我带来了坏处,因为他增加了成为我号码的一部分。
0 = 0.64
1 = 0.1200000000000001
2 = 0.9600000000000009
3 = 0.6800000000000068
4 = 0.44000000000005457
5 = 0.5200000000004366
6 = 0.16000000000349246
7 = 0.2800000000279397
8 = 0.24000000022351742
9 = 0.9200000017881393
10 = 0.36000001430511475
11 = 0.880000114440918
12 = 0.04000091552734375
13 = 0.32000732421875
14 = 0.56005859375
15 = 0.48046875
16 = 0.84375
17 = 0.75
怎么了,如何在不保留数字末尾的情况下处理 double ?
holdtom
慕妹3242003
相关分类