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

1つのアプローチは次のとおりです。

最初にdouble値を取得してから、int(または)longを取得します。

例:

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

出力:

20
于 2013-01-15T21:57:51.930 に答える
4

intlongは両方とも整数データ型で、それぞれ32ビットと64ビットです。floatまたはを使用して、double浮動小数点数を表すことができます。

于 2013-01-15T21:58:28.630 に答える
3

その文字列(2.9)はどちらintegerでもありませんlongfloatたとえば、または。など、いくつかの小数点タイプを使用する必要がありますdouble

于 2013-01-15T21:58:18.800 に答える
1

intとは両方ともlong整数値です(より容量の大きい整数である長整数longの表現です)。これらのタイプは小数部をサポートしていないため、解析は失敗します。

それらを使用してキャストを強制すると、数値の小数部分が放棄されます。

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

doubleまたはのfloat代わりに使用してください。

于 2013-01-15T22:00:38.490 に答える