java bigdecimal 中怎么做到:保留n位小数,第n位小数是0的时候也要输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java bigdecimal 中怎么做到:保留n位小数,第n位小数是0的时候也要输出相关的知识,希望对你有一定的参考价值。

参考技术A import java.math.BigDecimal;

public class FormatBigDe

public static void main(String[] args)
BigDecimal decimal = new BigDecimal("213432.421342314");
System.out.println(String.format("%.2f", decimal)); //学过C语言,应该懂怎么控制

本回答被提问者采纳
参考技术B //去后缀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如何做到四舍五入

方法一:四舍五入

double  f  =  111231.5585;
BigDecimal  b = new BigDecimal(f);

double f1  =  b.setScale(2,  RoundingMode.HALF_UP).doubleValue();

方式二:

java.text.DecimalFormat df = new   java.text.DecimalFormat("#.00");
df.format(你要格式化的数字);

方式三:

double d = 3.1415926;

String result = String .format("%.2f");

注意:%.2f %. 表示 小数点前任意位数   2 表示两位小数 格式后的结果为f 表示浮点型。

方式四:

此外如果使用struts标签做输出的话,有个format属性,设置为format="0.00"就是保留两位小数例如:

<fmt:formatNumber type="number" value="$10000.22/100" maxFractionDigits="0"/>

参考技术A 自己写都可以啊,
浮点数+0.5然后向下取整就行了,也就是只取整数部分

以上是关于java bigdecimal 中怎么做到:保留n位小数,第n位小数是0的时候也要输出的主要内容,如果未能解决你的问题,请参考以下文章

java中 BigDecimal的类型的除法

java如何做到四舍五入

java bigdecimal 四舍五入

Java里面BigDecimal.divide()方法能不能实现保留小数点前后共35位这样的操作

c#中怎样使decimal类型变量保留固定小数位?

JS中计算金额时怎么使用BigDecimal类进行计算?给个例子看下