Kev*_*oyd 67 java parsing integer
Java代码如下:
String s = "0.01";
int i = Integer.parseInt(s);
Run Code Online (Sandbox Code Playgroud)
然而,这是抛出一个NumberFormatException ...可能会出错?
Mar*_*aux 89
String s = "0.01";
double d = Double.parseDouble(s);
int i = (int) d;
Run Code Online (Sandbox Code Playgroud)
异常的原因是整数不包含有理数(=基本上是分数).因此,尝试解析0.3为int是无稽之谈.A double或float数据类型可以包含有理数.
该方法的Java蒙上了double一个int由完成由向零取整去掉小数点后面的部分.
int i = (int) 0.9999;
Run Code Online (Sandbox Code Playgroud)
i 将零.
ada*_*ost 27
使用,
String s="0.01";
int i= new Double(s).intValue();
Run Code Online (Sandbox Code Playgroud)
Swa*_*nil 17
String s="0.01";
int i = Double.valueOf(s).intValue();
Run Code Online (Sandbox Code Playgroud)
在Java中,这种转换实际上是非常不直观的
以下面的字符串为例:"100.00"
C:至少自1971年以来一个简单的标准库函数(名称`atoi`来自哪里?)
int i = atoi(decimalstring);
Run Code Online (Sandbox Code Playgroud)
Java:Double(或Float)解析的强制通过,然后是强制转换
int i = (int)Double.parseDouble(decimalstring);
Run Code Online (Sandbox Code Playgroud)
Java肯定有一些奇怪的东西