Java代码如下:String s = "0.01";int i = Integer.parseInt(s);但是,这引发了NumberFormatException ...可能出了什么问题?
3 回答
陪伴而非守候
TA贡献1757条经验 获得超8个赞
String s = "0.01";
double d = Double.parseDouble(s);
int i = (int) d;
出现异常的原因是整数不包含有理数(基本上是分数)。因此,尝试解析0.3为int是胡说八道。一个double或一个float数据类型可以容纳有理数。
Java将a转换double为an的方式int是通过将小数点分隔符后的部分舍入为0来完成的。
int i = (int) 0.9999;
i 将为零。
jeck猫
TA贡献1909条经验 获得超7个赞
实际上,这种转换在Java中令人难以置信
例如,以下字符串:“ 100.00”
C:一个简单的标准库函数至少自1971年以来(这个名字是'atoi`从何而来?)
int i = atoi(decimalstring);
Java:通过Double(或Float)解析强制转换,然后强制转换
int i = (int)Double.parseDouble(decimalstring);
Java肯定有一些奇怪之处
添加回答
举报
0/150
提交
取消