【问题标题】:Convert to correct BigDecimal representation转换为正确的 BigDecimal 表示
【发布时间】:2014-01-13 16:35:06
【问题描述】:

我有一个字符串作为数据馈送返回,我需要将其转换为正确的 BigDecimal 格式 - 该字符串的格式为

1.6945E3

并且需要转换为 1694.50 但仅转换为 1694.5 会导致信息丢失。以下是我正在使用的代码。

我只是在传递字符串并在 BigDecimal 的实例上执行新操作。

关于如何获得正确数据表示的任何想法。

谢谢 '

【问题讨论】:

  • "导致信息丢失" => 什么信息丢失了?为什么您期望 1694.50 而不是 1694.500?等
  • 1694.5 等于 1694.50;只是一个不同的格式化程序

标签: java bigdecimal


【解决方案1】:

视情况而定,试试这个

    BigDecimal bd = new BigDecimal("1694.50");
    System.out.println(bd);

输出

1694.50

但是这个

    BigDecimal bd = new BigDecimal(1694.50);
    System.out.println(bd);

生产

1694.5

还有这个

    BigDecimal bd = new BigDecimal("1694.50");
    System.out.printf("%.3f", bd);

打印

1694.500

【讨论】:

    猜你喜欢
    • 2012-05-30
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    相关资源
    最近更新 更多