java - 在 EditText 中将字符串转换为 double

标签 java android string performance double

我正在制作一个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/

相关文章:

android - 希腊字符 - phpMyAdmin

java - 将字符串转换为数字,Java

c - 枚举和字符串

java - Oracle JDBC 教程 - 想要了解 2 层 JDBC 与 3 层

Java DataInputStream 与 BufferedInputStream

java - 在对整个 MySQL 结果进行平均之前限制每组的记录

c - 简单的字符串递归

java - 无法将类转换为 java.lang.reflect.ParameterizedType

java - 服务内的线程 - 需要等待线程完成 [Android]

算法 "PBE WITH MD5 AND 256 BIT AES-CBC-OPENSSL"的 java.security.NoSuchAlgorithmException