📜  Java中的 BigDecimal toString() 方法及示例

📅  最后修改于: 2022-05-13 01:54:38.017000             🧑  作者: Mango

Java中的 BigDecimal toString() 方法及示例


Java.math.BigDecimal.toString()方法用于表示当前调用此方法的 BigDecimal 为字符串形式,如果需要指数,则使用科学记数法。它是通过以下步骤完成的:

  • BigDecimal 的标准规范字符串形式是通过使用字符'0' 到 '9' 转换以十为基数的 BigDecimal 的未缩放值的绝对值,没有前导零,除非值是 0,然后是单个字符'0 ' 用来。
  • 接下来,计算调整后的指数,该指数比转换后的未缩放值和取反的缩放值中的字符数相加小一。即,-scale + (ulength-1),其中 ulength 是十进制数字中未缩放值的绝对值的长度(其精度)。
  • 然后将字符形式的指数作为转换后的未缩放值的后缀(可能插入小数点)。这包括字母“E”,紧随其后的是转换为字符形式的调整指数。
  • 最后,如果未缩放的值小于零,则整个字符串以减号字符“-”为前缀。如果未缩放的值为零或正数,则没有符号字符前缀。

句法:

public String toString()

参数:此方法不接受任何参数。

返回值:此方法返回此 BigDecimal 数字的 String 表示形式。

覆盖:此方法覆盖 Object 类的Java.lang.Object.toString() 方法。

下面的程序说明了Java中 toString() 方法的使用

示例 1:将 BigDecimal 转换为不带科学记数法的字符串的示例

// 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);
    }
}
输出:

示例 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

参考: Java : Java ()