java - java中BigDecimal到String?

标签 java bigdecimal

我的代码是:

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/

相关文章:

java - 使用 BigDecimal 数字进行四舍五入

java - 通过方法传递类的属性或局部变量哪个更好?

scala - 将scala.math.BigDecimal转换为java.math.BigDecimal?

java - 更改 JFrame 中的内容 Pane

基于套接字的 Java Derby

javascript - BigDecimal JavaScript 库错误 - 'wrap_meth.inner_method' 为空或不是对象

scala - 编写 BigDecimal 计算,就好像它只是一个普通的 Scala 中的四个算术运算

java - 如何使用 Java 的 BigDecimal 正确计算?

java - 使用 web.xml 和 setMaxInactiveInterval 设置 session 超时之间的区别

java - Kotlin:javaSetter 方法未编译