Java 在if语句中进行比较时加倍超出范围

Java 在if语句中进行比较时加倍超出范围,java,Java,下面的代码在试图保存分数时给出了奇怪的结果(它增加了大量的值,就好像if语句失败了一样) double EndScore=(double)(mScoreManager.getScore()); if(mWorldCounterBox.getCurrentAlivePopulationPercent()

下面的代码在试图保存分数时给出了奇怪的结果(它增加了大量的值,就好像if语句失败了一样)

double EndScore=(double)(mScoreManager.getScore());
if(mWorldCounterBox.getCurrentAlivePopulationPercent()<97.0)
{
EndScore+=(mWorldCounterBox.getCurrentAlivePopulationPercent())*100.00;
}
System.out.println(mWorldCounterBox.getCurrentAlivePopulationPercent())//输出:1.0544652507298142E-7
系统输出打印项次(EndScore)//产量:1.000010546525074
//增加每死亡百分比的分数。
if(mWorldCounterBox.getCurrentAlivePopulationPercent()<0.1)
{
EndScore+=20000.0;
}
系统输出打印项次(EndScore)//Outout 20001.000010544652——这里错了
设置sAsseveload.setCountryScore(mCurrentWorld,(float)(EndScore));

满足两个时间的条件

如果值小于0.1,则其也小于97.0

我想你把条件搞错了

mWorldCounterBox.getCurrentAlivePopulationPercent()
小于0.1

如果第一个条件满足

if(mWorldCounterBox.getCurrentAlivePopulationPercent() < 97.0)  //mWorldCounterBox.getCurrentAlivePopulationPercent()  <97.0  true
if(mWorldCounterBox.getCurrentAlivePopulationPercent()<97.0)//mWorldCounterBox.getCurrentAlivePopulationPercent()
System.out.println(mWorldCounterBox.getCurrentAlivePopulationPercent())//输出:1.0544652507298142E-7

表示
mWorldCounterBox.getCurrentAlivePopulationPercent()
1.0544652507298142*((10)^-7)
小于
0.1

那以后呢

EndScore += 20000.0; //1.0000105446525074+ 20000.0

EndScore
变成
20001.000010544652

我不明白你的问题
mWorldCounterBox.getCurrentAlivePopulationPercent()
小于0.1,因此正在将20000.0添加到
EndScore
。EndScore的值应该是多少,顺便说一句,您应该按照约定重命名为EndScore?我是个白痴,这似乎就是问题所在。
  if(mWorldCounterBox.getCurrentAlivePopulationPercent() < 0.1)    //mWorldCounterBox.getCurrentAlivePopulationPercent()  <0.1  true
EndScore += 20000.0; //1.0000105446525074+ 20000.0