将字符串十进制(2.9)更改为Int或Long问题

Taz*_*Tad 4 java

好吧,我对java很新,但我很快就学会了(希望如此).所以无论如何这是我的问题:

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

据我所知,int不支持小数,我不确定是否有多长时间?如果不是,我需要知道支持小数的是什么.

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

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

kos*_*osa 5

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

一种方法是:

首先得到一个double值,然后得到int(或)long.

例:

int temp =  Double.valueOf("20.2").intValue();
System.out.println(temp);
Run Code Online (Sandbox Code Playgroud)

输出:

20
Run Code Online (Sandbox Code Playgroud)


Fri*_*itz 2

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

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

double iAmADouble = 100 / 3;
int iWasADouble = (int)iAmADouble; //This number turns out to be 33
Run Code Online (Sandbox Code Playgroud)

使用doublefloat代替。