java bigdecimal 末尾0的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java bigdecimal 末尾0的问题相关的知识,希望对你有一定的参考价值。
java bigdecimal 末尾0的问题。如何去掉多余的0?
比如1.20*1.20打印出1.44而不是1.4400?
在打印中设置格式或者自身精度调整都可以。
谢谢!
还有,如何去掉...E..的情况。不想用科学计数法
public class Test
public static void main(String[] args)
BigDecimal b1=new BigDecimal("1.22222222222222222222222200000");
BigDecimal b2=new BigDecimal("122222222222222222222222222220");
BigDecimal b3=b1.multiply(b2);
System.out.println("清零前>>"+b3);
System.out.println("清零后>>"+trim(b3.toString()));
/**
* 清零
* @param str 原始字符串
* @return
*/
public static String trim(String str)
if (str.indexOf(".") != -1 && str.charAt(str.length() - 1) == '0')
return trim(str.substring(0, str.length() - 1));
else
return str.charAt(str.length() - 1) == '.' ? str.substring(0, str.length() - 1) : str;
参考技术A //去后缀0
BigDecimal bd = new BigDecimal("12000.87300");
bd = bd.stripTrailingZeros();
System.out.println(bd);
bd = new BigDecimal("1.2E-3");
// bd = new BigDecimal("1.2E+3");
//去科学记数
if(bd.scale()<0)
bd = bd.setScale(0);
System.out.println(bd);
//保留N位小数. N=5:
bd = new BigDecimal("12000.873000");
bd = bd.setScale(5, BigDecimal.ROUND_HALF_UP);
System.out.println(bd);
以上是关于java bigdecimal 末尾0的问题的主要内容,如果未能解决你的问题,请参考以下文章