如何为十进制数做一个 Integer.parseInt()?

2022-08-31 11:55:11

Java 代码如下所示:

String s = "0.01";
int i = Integer.parseInt(s);

然而,这是抛出一个数字格式异常...可能出了什么问题?


答案 1
String s = "0.01";
double d = Double.parseDouble(s);
int i = (int) d;

例外的原因是整数不持有有理数(=基本上是分数)。因此,尝试解析为int是无稽之谈。A 或数据类型可以包含有理数。0.3doublefloat

Java 将 a 强制转换为 a 的方式是通过舍入到零来删除小数点分隔符后面的部分来完成的doubleint

int i = (int) 0.9999;

i将为零。


答案 2

0.01不是整数(整数),所以你当然不能把它解析为一个。使用 或 代替。Double.parseDoubleFloat.parseFloat