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

Java代码如下:


String s = "0.01";

int i = Integer.parseInt(s);

但是,这引发了NumberFormatException ...可能出了什么问题?


蝴蝶不菲
浏览 455回答 3
3回答

白猪掌柜的

0.01不是整数(整数),因此您当然不能将其解析为整数。使用Double.parseDouble或Float.parseFloat代替。

翻阅古今

String s = "0.01";double d = Double.parseDouble(s);int i = (int) d;出现异常的原因是整数不包含有理数(基本上是分数)。因此,尝试解析0.3为int是胡说八道。一个double或一个float数据类型可以容纳有理数。Java将a转换double为an的方式int是通过将小数点分隔符后的部分舍入为零来完成的。int i = (int) 0.9999;i 将为零。

翻翻过去那场雪

实际上,这种转换在Java中令人难以置信例如,以下字符串:“ 100.00”C:至少从1971年起就提供了一个简单的标准库函数(“ atoi”这个名字是从哪里来的?)int i = atoi(decimalstring);Java:通过Double(或Float)解析强制转换,然后强制转换int i = (int)Double.parseDouble(decimalstring);Java肯定有一些奇怪之处
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java