gpt4 book ai didi

java - BigDecimal 实例的工程表示

转载 作者:行者123 更新时间:2023-11-30 08:03:46 25 4
gpt4 key购买 nike

如何配置 BigDecimal 值,以便如果它少于 32 个字符,则应将其显示为纯字符串,否则应以工程格式表示?

例如:

3690215840369.69874120035964120 - plain string
369043523215840369.69874120035964120 - engineering format of representation

我尝试通过以下方式解决此问题:

    BigDecimal bd = new BigDecimal("8678679532108467840356746356832624562456786656736.6456442652456345673656");
System.out.println(bd.toEngineeringString());
System.out.println(bd.toPlainString());

但是输出是相同的。那么,如何获得 BigDecimal 实例的工程表示?

最佳答案

你不能做这样的事情吗:

BigDecimal bd = new BigDecimal("8678679532108467840356746356832624562456786656736.6456442652456345673656");
System.out.println(bd.toPlainString().length()<32 ? bd.toPlainString() : bd.toEngineeringString());

如果您在检查 32 时需要忽略小数点:

BigDecimal bd = new BigDecimal("8678679532108467840356746356832624562456786656736.6456442652456345673656");
int decimalOffset = 0;
if (bd.toPlainString().indexOf('.')>=0)
decimalOffset=1;
System.out.println(bd.toPlainString().length()-decimalOffset<32 ? bd.toPlainString() : bd.toEngineeringString());

但是如果您指的是科学表示法,那么请查看 Steve 的答案 here 并将其与我答案的第一部分相结合,替换 bd.toEngineeringString()格式(bd)

关于java - BigDecimal 实例的工程表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479605/

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