Java BigDecimal 如何去掉末尾多余的 0

简介:

Java BigDecimal 如何去掉末尾多余的 0 呢?

BigDecimal 原生提供了stripTrailingZeros() 方法可以实现去掉末尾的 0。

如果你在这里直接使用 然后使用 toString() 将会转换为科学计数法输出。

考察下面的代码:

你可以访问 https://github.com/cwiki-us-demo/java-tutorials/blob/master/java-numbers/src/test/java/com/ossez/maths/BigDecimalDemoUnitTest.java 访问源代码。

/**
 * To StripTrailingZeros
 */
@Test
public void bigDecimalStripTrailingZerosTest() {
    BigDecimal bigNumber = new BigDecimal("2707000000000");
    // apply StripTrailingZeros function
    logger.info("{}", bigNumber.toString());
    logger.info("{}", bigNumber.stripTrailingZeros().toString());
    logger.info("{}", bigNumber.stripTrailingZeros().toPlainString());
}

上面的代码将会输出下面的内容:

2020/02/25 14:00:19.271 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 2707000000000
2020/02/25 14:00:19.275 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 2.707E+12
2020/02/25 14:00:19.275 [main] INFO c.ossez.maths.BigDecimalDemoUnitTest - 2707000000000

stripTrailingZeros(),将会转换为科学计数法输出,如果你不希望用科学计数法输出的话,那么你可以使用 toPlainString() 进行全字符输出。

_

https://blog.ossez.com/archives/3227

目录
相关文章
|
1月前
|
Java
【Java】Math、System、RunTime、BigDecimal类常用方法
【Java】Math、System、RunTime、BigDecimal类常用方法
|
1月前
|
安全 Java
12 Java常用类(二)(String类+时间类+BigDecimal类等等)
12 Java常用类(二)(String类+时间类+BigDecimal类等等)
25 2
|
3月前
|
Java
深入了解Java中的BigDecimal类及其方法
深入了解Java中的BigDecimal类及其方法
|
3月前
|
安全 Java
java中BigDecimal详解
java中BigDecimal详解
|
4月前
|
算法 Java API
java BigDecimal使用详细介绍
java BigDecimal使用详细介绍
java BigDecimal使用详细介绍
|
4月前
|
存储 Java
Java中BigDecimal怎样取反
在上述示例中,`number.negate()`会将BigDecimal对象 `number`的值取反,并将结果存储在新的BigDecimal对象 `negated`中。
66 0
|
4月前
|
Java 数据库
Java中BigDecimal比较大小的方法BigDecimal转换为Integer
Java中BigDecimal比较大小的方法BigDecimal转换为Integer
41 0
|
4月前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
83 0
|
4月前
|
存储 Java
你知道Java中的BigInteger类和BigDecimal类吗?
你知道Java中的BigInteger类和BigDecimal类吗?
|
Java
Java开发篇- 从BigDecimal的divide的异常说起
在过去做项目的某一天中,突然有小伙伴说两个BigDecimal的数据相除(divide)报错了,觉得不可能,然后问他是怎么编写的,他说很简单呀,就是new了2个BigDecimal,然后相除的结果赋值给另外一个BigDecimal对象。听起来觉得没有问题,正常来说,2个Integer(int),2个Double(double)都不会报错,然后问是什么异常,说是一个很奇怪的异常
412 0