0

如何将以下值解析为 int。我们在 java.math 中有任何特定的类吗?

       String string="500.0000000";

我尝试如下,它抛出数字格式异常。

       int x=Integer.parseInt(string).

问候,

拉吉

4

4 回答 4

2

您可以在一行中解析它

String string="500.0000000";
int x = Double.valueOf(string).intValue();
System.out.println(x);

或者

int x = (int)Double.parseDouble(str);

你会得到输出为

500

这里Double.valueOf(string)将字符串解析为双值

使用解析的 double 值转换为 int 类型.intValue();

于 2013-09-27T19:23:29.210 回答
0

将其解析为双精度,然后将其转换为整数:

String s = "500.0000000";
double d = Double.parseDouble(s);
int i = (int) d;

Java 将 double 转换为 int 的方式是它删除了小数部分。

于 2013-09-27T19:20:58.267 回答
0

小数表示它不是整数。尝试将其解析为浮点数或双精度数:

float f = Float.parseFloat(string);

如果你需要它作为一个 int,你可以尝试转换它:

int x = (int)f;
于 2013-09-27T19:21:58.770 回答
0

您的主要问题是,您尝试将双精度值解析为 int。但是,如果您也需要它在其他国家/地区工作,这就是您所需要的:

NumberFormat nf = NumberFormat.getNumberInstance( Locale.GERMANY );
System.out.println( nf.parse( "100.0000000" ) ); // ->  1000000000

nf = NumberFormat.getNumberInstance( Locale.US );
System.out.println( nf.parse( "100.0000000" ) ); // -> 100
于 2013-09-27T19:26:03.700 回答