4

好的,我对 java 还很陌生,但我学得很快(希望如此)。所以无论如何这是我的问题:

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

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

这是错误:java.lang.NumberFormatException: For input string: "2.9"同时使用 Interger.parseInt 和 Long.parseLong

所以任何帮助将不胜感激!

4

4 回答 4

5

您不能直接从小数点值中获取int(或) 。long

一种方法是:

首先得到一个双精度值,然后得到 int(或)long。

例子:

int temp =  Double.valueOf("20.2").intValue();
System.out.println(temp);

输出:

20
于 2013-01-15T21:57:51.930 回答
4

int并且long都是整数数据类型,分别是 32 位和 64 位。您可以使用floatordouble来表示浮点数。

于 2013-01-15T21:58:28.630 回答
3

该字符串 (2.9) 既不是integer也不是long。您应该使用一些小数点类型,例如floator double

于 2013-01-15T21:58:18.800 回答
1

两者intlong都是整数值(long表示长整数,它是具有更高容量的整数)。解析失败,因为这些类型不支持小数部分。

如果您要使用它们并强制进行强制转换,您将放弃数字的小数部分。

double iAmADouble = 100 / 3;
int iWasADouble = (int)iAmADouble; //This number turns out to be 33

使用doublefloat代替。

于 2013-01-15T22:00:38.490 回答