以下代码在尝试保存分数时给出了奇怪的结果(它增加了巨大的价值,好像 if 语句失败了)。
double EndScore = (double)(mScoreManager.getScore());
if(mWorldCounterBox.getCurrentAlivePopulationPercent() < 97.0)
{
EndScore += (mWorldCounterBox.getCurrentAlivePopulationPercent()) * 100.00;
}
System.out.println(mWorldCounterBox.getCurrentAlivePopulationPercent()); //Output: 1.0544652507298142E-7
System.out.println(EndScore); //Output: 1.0000105446525074
//Increase score per dead %.
if(mWorldCounterBox.getCurrentAlivePopulationPercent() < 0.1)
{
EndScore += 20000.0;
}
System.out.println(EndScore); //Outout 20001.000010544652 -- WRONG HERE
SettingsSaveLoad.setCountryScore(mCurrentWorld, (float)(EndScore));