在这篇博文中,我们将学习BigInteger转换的例子,包括
- 如何从BigDecimal转换为String
- 如何将BigDecimal转换为String
java.math.BigDecimal class in java
这是一种数据类型,可用于财务和ERP应用中,在这些应用中,数字的精度很重要。BigDecimal用于存储算术运算后的数字的四舍五入。它是一个不可变的类型。
BigDecimal 是在java语言的 java.math包中声明的一个类。
如何在java中创建一个BigDecimal?
可以使用带有字符串或双倍参数的构造函数来创建对象。
一个例子
BigDecimal bigDecimal = new BigDecimal("147.87932");
System.out.println(bigDecimal);
BigDecimal bigDecimal1 = new BigDecimal(147.87932);
System.out.println(bigDecimal1);
输出
147.87932
147.8793200000000069849193096160888671875
第一个,使用带有字符串值的构造函数创建一个对象,并返回正确的实际值。
第二种是使用带双倍值的构造函数创建,147.87932被转换为最接近的双倍值147.8793200000000069849193096160888671875。
希望你能理解在java中是如何创建BigDecimal对象的。
如何在java中把BigDecimal转换为String,并举例说明?
在Java中,我们可以通过多种方式将BigDecimal转换为String。
首先是使用toString方法,其次是toEngineeringString方法。最后是简单的toPlainString方法
使用toString()方法。
toString() 方法在任何扩展了java.lang.object类的java类中都可以使用。它将数字字符串作为字符串输出。
语法:
BigDecimal.toString()
code:
MathContext m = new MathContext(3);
BigDecimal bg = new BigDecimal("3617E+4", m);
System.out.println(bg.toString());
BigDecimal bd3 = new BigDecimal("567.12345678901234561243");
System.out.println(bd3.toString());
输出:
3.62E+7
567.12345678901234561243
使用toEngineeringString()方法
这种方法的转换也很简单。
函数toEngineeringString() ,返回一个没有exponent 字段的Bigdecimal 对象的String值。然而,与函数toString()方法相比,这种方法并不能返回正确的scale 值。
语法:
public String toEngineeringString()
下面是一个完整的例子
MathContext m = new MathContext(3);
BigDecimal bg = new BigDecimal("3617E+4", m);
System.out.println(bg.toEngineeringString());
BigDecimal bd3 = new BigDecimal("567.12345678901234561243");
System.out.println(bd3.toEngineeringString());
输出:
36.2E+6
567.12345678901234561243
使用toPlainString()方法
第三,是toPlainString() ,它返回一个没有exponent 字段的bigdecimal 对象的普通字符串。
语法:
public String toPlainString()
MathContext m = new MathContext(3);
BigDecimal bg = new BigDecimal("3617E+4", m);
System.out.println(bg.toPlainString());
BigDecimal bd3 = new BigDecimal("567.12345678901234561243");
System.out.println(bd3.toPlainString());
输出:
36200000
567.12345678901234561243
String valueOf()方法
这是一个简单的方法,Java中的String.valueOf()函数返回任何类别的字符串表示。
语法:
String.valueOf(AnyObject)
输入参数:
- 类中的任何对象,如BigDecimal 返回。
- 所提供对象的字符串版本,在本例中是BigDecimal对象。
例子:
MathContext mc = new MathContext(3);
BigDecimal bd = new BigDecimal("1237E+4", mc);
System.out.println(String.valueOf(bd));
BigDecimal bd1 = new BigDecimal("123.12345678901234561243");
System.out.println(String.valueOf(bd1));
输出:
1.24E+7
123.12345678901234561243
如何在Java中把字符串转换为BigDecimal?
从一个给定的字符串转换为BigDecimal是非常容易的,简单的方法是使用BigDecimal constructor
语法:
BigDecimal(String)
这个构造函数接受字符串值,其中字符串是一个用双引号括起来的数字。
如果给定的数字不是一个用字符串括起来的数字,就会产生NumberFormatException运行时错误。
String stringObject="123.45";
BigDecimal bigDecimalObject=new BigDecimal(stringObject);
System.out.println(bigDecimalObject);
输出:
123.45
NumberFormatException错误
当字符串包含非数字字符时,这个问题就会出现。
String stringObject="123.45";
BigDecimal bigDecimalObject=new BigDecimal(stringObject);
System.out.println(bigDecimalObject);
并且输出为
Exception in thread "main" java.lang.NumberFormatException
结论
修复方法是:BigDecimal将转换只包含数字的字符串。尽量避免只包含非数字字符的字符串。
希望你能理解java中字符串和biginteger的转换。请在facebook/twitter上点赞或留言,并订阅电子邮件以获取我们的最新信息。