好吧,我对java很新,但我很快就学会了(希望如此)。所以无论如何这是我的问题:
我有一个字符串(例如我们将使用2.9),我需要将其更改为int或long或类似的东西,我可以用它来与另一个数字进行比较。
据我所知,int不支持小数,我不确定是否有多长时间?如果不是,我需要知道支持小数的是什么。
这是错误:java.lang.NumberFormatException: For input string: "2.9"
包含Interger.parseInt和Long.parseLong
所以任何帮助都会受到赞赏!
答案 0 :(得分:5)
您无法直接从小数点值获取int
(或)long
。
一种方法是:
首先得到一个double值,然后得到int(或)long。
示例:
int temp = Double.valueOf("20.2").intValue();
System.out.println(temp);
输出:
20
答案 1 :(得分:4)
int
和long
都是整数数据类型,分别是32位和64位。您可以使用float
或double
来表示浮点数。
答案 2 :(得分:3)
该字符串(2.9)既不是integer
也不是long
。您应该使用一些小数点类型,例如float
或double
。
答案 3 :(得分:1)
int
和long
都是整数值(long
表示长整数,它是一个具有更高容量的整数)。解析失败,因为这些类型不支持小数部分。
如果您使用它们并强制执行投射,则放弃该数字的小数部分。
double iAmADouble = 100 / 3;
int iWasADouble = (int)iAmADouble; //This number turns out to be 33
改为使用double
或float
。