作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 BigDecimal 计算一些大实数。虽然我尝试了两种方法:BigDecimal.toString()
或 BigDecimal.stripTrailingZeros().toString()
,还是不能满足我的要求。
例如,如果我使用 stripTrailingZeros
:4.3000
变为 4.3
但 4.0
变为 4.0
不是 4
。以上两种方法都不能满足这些条件。所以,我的问题是:如何在 Java 中完成?
谢谢:)
最佳答案
您可以按如下方式使用 DecimalFormat
:
BigDecimal a = new BigDecimal("4.3000");
BigDecimal b = new BigDecimal("4.0");
DecimalFormat f = new DecimalFormat("#.#");
f.setDecimalSeparatorAlwaysShown(false)
f.setMaximumFractionDigits(340);
System.out.println(f.format(a));
System.out.println(f.format(b));
打印
4.3
4
正如 Bhashit 所指出的,默认的小数位数是 3,但我们可以将其设置为最大值 340。我实际上并没有意识到 DecimalFormat
的这种行为。这意味着如果您需要超过 340 个小数位,您可能必须自己操作 toString()
给出的 string
。
关于Java BigDecimal : How to fortmat BigDecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16661939/
我正在使用 BigDecimal 计算一些大实数。虽然我尝试了两种方法:BigDecimal.toString() 或 BigDecimal.stripTrailingZeros().toString
我已经搜索了一个 SQL 命令来转换这种类型的格式,但我见过的最接近的是 STR_TO_DATE。读到这一点时我感到不知所措。 情况: 我有一个考勤程序,可以在员工扫描手指时下载姓名和时间戳。 该程序
我是一名优秀的程序员,十分优秀!