为什么在Java中两个整数的除法返回0.0?

2022-08-31 15:18:18
int totalOptCount = 500;
int totalRespCount=1500; 
float percentage =(float)(totalOptCount/totalRespCount);

为什么这总是返回值 0.0?另外,我想将其格式化为00.00格式并转换为字符串?


答案 1

因为到浮点数的转换发生在除法完成后。你需要:

float percentage = ((float) totalOptCount) / totalRespCount;

您应该能够使用如下内容进行格式化:

String str = String.format("%2.02f", percentage);

答案 2

如果使用值,则使用 a 可能是更好的选择,并且舍入误差较小。 可以表示无错误的值,最高可达 ~1600 万。 可以准确地表示所有值。intdoublefloatintdoubleint

double percentage =(double) totalOptCount / totalRespCount;

百分比通常乘以100,这意味着您可以放弃施法。

double percentage = 100.0 * totalOptCount / totalRespCount;