java bigdecimal to string
时间:2020-02-23 14:34:56 来源:igfitidea点击:
在本教程中,我们将看到如何在Java中将BigDecimal转换为String。
有许多方法可以将大型java中的字符串转换为字符串。
他们之中有一些是:
- 使用toString()
- 使用string.valueof()
ToString方法
我们可以简单地使用BigDecimal的ToString方法将BigDecimal转换为String。
package org.igi.theitroad; import java.math.BigDecimal; public class BigDecimalToStringMain { public static void main(String[] args) { BigDecimal bigDecimal=new BigDecimal("20.234"); String toStringBigDec=bigDecimal.toString(); System.out.println(toStringBigDec); } }
运行上面的程序时,我们将得到以下输出:
20.234
字符串的ValueOf方法
我们还可以使用字符串的valueOf()方法将BigDecimal转换为String,但内部使用BigDecimal的ToString方法,因此最好使用BigDecimal的ToString方法
package org.igi.theitroad; import java.math.BigDecimal; public class BigDecimalToStringMain { public static void main(String[] args) { BigDecimal bigDecimal=new BigDecimal("20.234"); String valueOfBigDec=String.valueOf(bigDecimal); System.out.println(valueOfBigDec); } }
运行上面的程序时,我们将得到以下输出:
20.234
使用toString的问题
当使用BigDecimal构造函数时,我们可能无法找到预期的结果,该构造函数将double作为参数。
例如:
package org.igi.theitroad; import java.math.BigDecimal; public class BigDecimalToStringMain { public static void main(String[] args) { BigDecimal bigDecimal=new BigDecimal(20.234); String toStringBigDec=bigDecimal.toString(); System.out.println(toStringBigDec); } }
运行上面的程序时,我们将得到以下输出:
20.23400000000000176214598468504846096038818359375
我们是否只是预期20.234作为输出?
我想是的。
但问题是当我们使用Tave Double作为参数的BigDecimal构造函数时,Double不能恰好代表20.234.
我们需要使用基于字符串的构造函数或者使用BigDecimal.ValueOf方法来解决此问题。
我们已经在上面示例中已经看到基于String的构造函数。
package org.igi.theitroad; import java.math.BigDecimal; public class BigDecimalToStringMain { public static void main(String[] args) { String toStringBigDec=BigDecimal.valueOf(20.234).toString(); System.out.println(toStringBigDec); } }
运行上面的程序时,我们将得到以下输出:
20.234