Java代碼如下:String s = "0.01";int i = Integer.parseInt(s);但是,這引發了NumberFormatException ...可能出了什么問題?
3 回答

繁星點點滴滴
TA貢獻1803條經驗 獲得超3個贊
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 將為零。

翻閱古今
TA貢獻1780條經驗 獲得超5個贊
實際上,這種轉換在Java中令人難以置信
例如,以下字符串:“ 100.00”
C:一個簡單的標準庫函數至少自1971年以來(這個名字是'atoi`從何而來?)
int i = atoi(decimalstring);
Java:通過Double(或Float)解析強制轉換,然后強制轉換
int i = (int)Double.parseDouble(decimalstring);
Java肯定有一些奇怪之處
添加回答
舉報
0/150
提交
取消