Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串小数(2.9)更改为Int或Long问题_Java - Fatal编程技术网

Java 将字符串小数(2.9)更改为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相当陌生,但我正在快速学习(希望如此)。总之,我的问题是:

我有一个字符串(例如,我们将使用2.9),我需要将其更改为int或long或类似的值,以便与另一个数字进行比较

据我所知,int不支持小数,我不确定long是否也支持小数?如果不是,我需要知道什么支持小数

这是错误:
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”)
,以避免创建一次性双精度对象。