我正在制作一个Android应用程序。用户将在 android EditText
中输入 11-15 位数字,因为我必须对此进行一些数学工作,我需要将其转换为 double ,但到目前为止这效果不佳
如何在将其解析为 double 后获得相同的字符串
到目前为止,这是我的代码:
String Svalue="1101300045"
double Dvalue=Double.parseDouble(Svalue);
System.out.print("Dvalue: "+Dvalue);
Dvalue++;
Svalue=Double.toString(Dvalue);
System.out.print("Svalue: "+Svalue)
输出:
Dvalue: 1.11013001045.E15
Svalue: 1.11013001046.E15
期望的输出:
Dvalue: 1101300045
Svalue: 1101300046
最佳答案
要格式化 Double
,您可以使用 NumberFormat
实用程序类。
String Svalue = "1101300045";
double Dvalue = Double.parseDouble(Svalue);
NumberFormat nf = NumberFormat.getInstance();
nf.setGroupingUsed(false);
System.out.println("Dvalue: " + nf.format(Dvalue));
Dvalue++;
Svalue = nf.format(Dvalue);
System.out.println("Svalue: " + Svalue);
您还可以使用舍入支持来格式化小数值,例如
Svalue = "1101300045.98765";
Dvalue = Double.parseDouble(Svalue);
nf.setMaximumFractionDigits(2);
System.out.println("Dvalue: " + nf.format(Dvalue));
输出:
Dvalue: 1101300045
Svalue: 1101300046
Dvalue: 1101300045.99
关于java - 在 EditText 中将字符串转换为 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28760284/