为什么在Java中两个整数的除法返回0.0?
2022-08-31 15:18:18
int totalOptCount = 500;
int totalRespCount=1500;
float percentage =(float)(totalOptCount/totalRespCount);
为什么这总是返回值 0.0?另外,我想将其格式化为00.00格式并转换为字符串?
int totalOptCount = 500;
int totalRespCount=1500;
float percentage =(float)(totalOptCount/totalRespCount);
为什么这总是返回值 0.0?另外,我想将其格式化为00.00格式并转换为字符串?
因为到浮点数的转换发生在除法完成后。你需要:
float percentage = ((float) totalOptCount) / totalRespCount;
您应该能够使用如下内容进行格式化:
String str = String.format("%2.02f", percentage);
如果使用值,则使用 a 可能是更好的选择,并且舍入误差较小。 可以表示无错误的值,最高可达 ~1600 万。 可以准确地表示所有值。int
double
float
int
double
int
double percentage =(double) totalOptCount / totalRespCount;
百分比通常乘以100,这意味着您可以放弃施法。
double percentage = 100.0 * totalOptCount / totalRespCount;