【发布时间】:2012-05-25 13:16:11
【问题描述】:
我有一个类似于:7.6E+7 的字符串。
我的问题很简单:如何把它变成对应的数字:76000000?
我曾尝试使用substring 来隔离E+7 部分,然后解析7 部分,然后将小数位移到7 以上。有更简单的方法吗?
谢谢!
【问题讨论】:
标签: java string parsing int double
我有一个类似于:7.6E+7 的字符串。
我的问题很简单:如何把它变成对应的数字:76000000?
我曾尝试使用substring 来隔离E+7 部分,然后解析7 部分,然后将小数位移到7 以上。有更简单的方法吗?
谢谢!
【问题讨论】:
标签: java string parsing int double
long n = Double.valueOf("7.6E+7").longValue();
System.out.println(d);
// prints 76000000 to the output.
【讨论】:
【讨论】:
您可以使用 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 打印到输出。
【讨论】: