Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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)_Java_String_Parsing_Int_Double - Fatal编程技术网

使用指数解析字符串(Java)

使用指数解析字符串(Java),java,string,parsing,int,double,Java,String,Parsing,Int,Double,我有一个类似的字符串:7.6E+7 我的问题很简单:如何将其转换为相应的数字:76000000 我尝试使用substring来分离E+7部分,然后解析7部分,然后将小数点移动到7以上。有没有更简单的方法 谢谢大家! 我建议使用: 其中,str是输入字符串。可以使用Double.parseDouble()将其作为数字获取 String e = "7.6E+7"; System.out.println(Double.parseDouble(e)); 给出输出7.6E7。如果您不想在输出中使用E,可

我有一个类似的字符串:
7.6E+7

我的问题很简单:如何将其转换为相应的数字:
76000000

我尝试使用
substring
来分离
E+7
部分,然后解析
7
部分,然后将小数点移动到7以上。有没有更简单的方法

谢谢大家!

我建议使用:


其中,
str
是输入字符串。

可以使用Double.parseDouble()将其作为数字获取

String e = "7.6E+7";
System.out.println(Double.parseDouble(e));
给出输出7.6E7。如果您不想在输出中使用E,可以使用

NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);
System.out.println(f.format(Double.parseDouble(e)));

这将为您提供76000000个输出,而无需转换为整数。例如,如果您确信数字最终可以转换为整数而不损失精度,那么向数字添加0.1将得到76000000.1的输出,或者您可以:

int d = (int) Double.parseDouble("7.6E+7");
System.out.println(d);
76000000
打印到输出

long n = Double.valueOf("7.6E+7").longValue();
System.out.println(d);
// prints 76000000 to the output.
long n = Double.valueOf("7.6E+7").longValue();
System.out.println(d);
// prints 76000000 to the output.