gpt4 book ai didi

java - 强制 BigDecimals 使用科学计数法

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:29 25 4
gpt4 key购买 nike

我有这个方法:

    public void Example(BigDecimal value, int scale){
BigDecimal x = new BigDecimal("0.00001");
System.out.println("result: " + (value.multiply(x)).setScale(scale, RoudingMode.HALF_UP).toString());

如果按照示例,值 = 1 且比例 = 2,则输出为“结果:0.00”。我以为会是1.00E-5。所以,我的疑问是:如果 BigDecimal 的小数位数大于某个值(在我的示例中为 2),如何强制将其格式化为科学记数法?

最佳答案

这是 DannyMo 的答案的一个版本,它自动设置比例:

private static String format(BigDecimal x)
{
NumberFormat formatter = new DecimalFormat("0.0E0");
formatter.setRoundingMode(RoundingMode.HALF_UP);
formatter.setMinimumFractionDigits((x.scale() > 0) ? x.precision() : x.scale());
return formatter.format(x);
}

System.out.println(format(new BigDecimal("0.01"))); // 1.0E-2
System.out.println(format(new BigDecimal("0.001"))); // 1.0E-3
System.out.println(format(new BigDecimal("500"))); // 5E2
System.out.println(format(new BigDecimal("500.05"))); // 5.00050E2

关于java - 强制 BigDecimals 使用科学计数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58796212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com