Java 将字符串小数(2.9)更改为Int或Long问题
好的,我对java相当陌生,但我正在快速学习(希望如此)。总之,我的问题是: 我有一个字符串(例如,我们将使用2.9),我需要将其更改为int或long或类似的值,以便与另一个数字进行比较 据我所知,int不支持小数,我不确定long是否也支持小数?如果不是,我需要知道什么支持小数 这是错误:Java 将字符串小数(2.9)更改为Int或Long问题,java,Java,好的,我对java相当陌生,但我正在快速学习(希望如此)。总之,我的问题是: 我有一个字符串(例如,我们将使用2.9),我需要将其更改为int或long或类似的值,以便与另一个数字进行比较 据我所知,int不支持小数,我不确定long是否也支持小数?如果不是,我需要知道什么支持小数 这是错误:java.lang.NumberFormatException:对于输入字符串:“2.9”以及integer.parseInt和Long.parseLong 因此,任何帮助都将不胜感激 您不能直接从小数点值
java.lang.NumberFormatException:对于输入字符串:“2.9”
以及integer.parseInt和Long.parseLong
因此,任何帮助都将不胜感激 您不能直接从小数点值获取
int
(或)long
一种方法是:
首先获取一个双精度值,然后获取int(或)long
例如:
int temp = Double.valueOf("20.2").intValue();
System.out.println(temp);
输出:
20
该字符串(2.9)既不是
整数
也不是长
。您应该使用一些小数点类型,例如float
或double
int
和long
都是整数数据类型,分别为32位和64位。您可以使用float
或double
来表示浮点数。int和long
都是整数值(即long
表示容量更大的长整数)。解析失败,因为这些类型不支持小数部分
如果你要使用它们并强制施法,你就放弃了数字的小数部分
double iAmADouble = 100 / 3;
int iWasADouble = (int)iAmADouble; //This number turns out to be 33
改用
double
或float
。整数是一个可以不使用小数或十进制成分写入的数字,或者更好的是,(int)double.parseDouble(“20.2”)
,以避免创建一次性双精度对象。