gpt4 book ai didi

java - java中BigDecimal到String?

转载 作者:行者123 更新时间:2023-12-01 17:06:49 26 4
gpt4 key购买 nike

我的代码是:

x=new BigDecimal(x.toString()+" "+(new BigDecimal(10).pow(1200)).toString());

我试图在将两个bigdecimal转换为字符串后将它们连接起来,然后将它们转换回bigdecimal。我这样做是因为x有一个带小数点的值,并且乘法会改变它的值。它编译得很好,但抛出了一个数字格式执行异常。

我的想法是使用 BigDecimal("String x") 构造函数将字符串转换回 BigDecimal。

注意:(例如)x=1333.212我正在将其转换为x=1333.2120000

最佳答案

它无法解析,因为没有特殊原因,其中有一个空格。查看它尝试解析的字符串,您会发现它不是有效的数字。

如果您只是尝试添加额外的尾随零(您的问题非常不清楚),则应该更改比例:

x = x.setScale(x.scale() + 1200);

简单的例子:

BigDecimal x = new BigDecimal("123.45");
x = x.setScale(x.scale() + 5);
System.out.println(x); // 123.4500000

如果您尝试将该值乘以 10 的幂(正如您最初的问题所建议的那样),有一种更简单的方法可以实现此目的,即使用 movePointRight :

x = x.movePointRight(1200);

来自文档:

The BigDecimal returned by this call has value (this × 10n) and scale max(this.scale()-n, 0).

关于java - java中BigDecimal到String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25203022/

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