java - 如何在不损失 Java 精度的情况下将 String 转换为 Double?

标签 java

尝试如下

String d=new String("12.00");
Double dble =new Double(d.valueOf(d));
System.out.println(dble);

输出: 12.0

但我想获得 12.00 精度

请告诉我在字符串类中不使用 format() 方法的正确方法

最佳答案

使用BigDecimal而不是双:

String d = "12.00"; // No need for `new String("12.00")` here
BigDecimal decimal = new BigDecimal(d);

这是有效的,因为 BigDecimal 保持“精度”,并且 BigDecimal(String) 构造函数将其设置为 右侧的位数。 ,并在 toString 中使用它。因此,如果您只是使用 System.out.println(decimal); 输出它,它会打印出 12.00

关于java - 如何在不损失 Java 精度的情况下将 String 转换为 Double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298232/

相关文章:

java - 似乎无法解决此 NullPointerException

java - 字节数组 -> 字符串 -> 加密文本的字节数组 : not the same size

java - 从 JSON 中提取

java - 需要帮助验证 URL 中的 PDF 是否存在

java - Android Regex - 如何在数字后面添加连字符?

java - 执行阶段持续 2 分钟,在此期间客户将在 2 - 6 秒之间随机到达并被放入队列中

java - 在 shell 脚本中确保它不以 root 身份运行最简单的是什么?

java - MouseMotionListener 捕获 Point 的速度不够快

java - JHipster Eclipse 插件错误

java - ReplaceSelector 和包含文件之间的区别