Java BigDecimal toString()方法及示例
java.math.BigDecimal .toString() 方法用来表示当前的BigDecimal,该方法被调用为String形式,如果需要指数,则使用科学记数法。它是通过以下步骤完成的。
- 通过使用’0’到’9’的字符转换BigDecimal的绝对值,创建BigDecimal的标准字符串形式,其中没有前导零,除非数值为0,则使用单字符’0’。
- 接下来,计算一个调整后的指数,这个指数比转换后的未标度值和否定的标度值中的字符数相加要少一个。也就是说,-scale + (ulength-1),其中ulength是未缩放值的绝对值的小数位长度(其精度)。
- 然后在转换后的未标度值后面加上一个字符形式的指数(可能插入小数点)。这包括字母 “E”,后面紧跟着转换为字符形式的调整指数。
- 最后,如果未标定的数值小于零,整个字符串的前缀是一个减号字符’-‘。如果未标定的值为零或正值,则不加任何符号字符的前缀。
语法
public String toString()
参数。本方法不接受任何参数。
返回值: 本方法返回BigDecimal数字的字符串表示。
重写: 该方法重写了Object类的java.lang.Object .toString()方法。
下面的程序说明了toString()方法在java中的使用。
例1:将大十进制数转换为字符串的例子,没有科学符号。
// Java program to demonstrate
// toString() method of BigDecimal
import java.math.*;
class GFG {
public static void main(String[] args)
{
// Creating a BigDecimal object
BigDecimal b;
// Object of String to hold the number
String input = "012345678901234567"
+ "8901234567890123"
+ "4567890123456789"
+ "0123456789012345"
+ "6789012345678901"
+ "2345678901234567"
+ "8901234567890123"
+ "4567890123456789"
+ "0123456789012345"
+ "6789012345678901"
+ "2345678901234567"
+ "8901234567890123"
+ "4567890123456789"
+ "0123456789012345"
+ "6789012345678901"
+ "2345678901234567"
+ "8901234567890123"
+ "4554324324362432"
+ "7674637264783264"
+ "7832678463726478"
+ "3264736274673864"
+ "7364732463546354"
+ "6354632564532645"
+ "6325463546536453"
+ "6546325463546534"
+ "6325465345326456"
+ "4635463263453264"
+ "654632498739473";
// Converting to BigDecimal
b = new BigDecimal(input);
// Apply toString() method
String s = b.toString();
// Print the result
System.out.println(s);
}
}
输出。
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234554324324362432767463726478326478326784637264783264736274673864736473246354635463546325645326456325463546536453654632546354653463254653453264564635463263453264654632498739473
例2:用科学符号将BigDecimal转换成字符串的例子
// Java program to demonstrate
// toString() method of BigDecimal
import java.math.*;
class GFG {
public static void main(String[] args)
{
// Create a BigDecimal object
BigDecimal a;
// Create a String object
String s;
// Set precision to 5
MathContext mc
= new MathContext(5);
a = new BigDecimal("4536785E4", mc);
// apply toString() method
s = a.toString();
// print the result
System.out.println(s);
}
}
输出。
4.5368E+10
**参考资料: **https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigDecimal.html#toString()