【发布时间】:2021-08-09 19:17:49
【问题描述】:
double basicPay = 1999.0;
double hra = 145.0;
float experience = 3.0f;
double percentage;
if(experience<3)percentage = 0;
else if(experience>=3 && experience<5)percentage = 5;
else if(experience>=5 && experience<10)percentage = 7;
else percentage = 12;
double salary = (basicPay + hra + basicPay*(percentage/100));
System.out.println(salary);
这显示输出为 2243.95
如果我改变了
double salary = (float)(basicPay + hra + basicPay*(percentage/100));
现在的答案是 2243.949951171875
为什么会这样?
【问题讨论】:
标签: java floating-point double primitive-types