String toString()

优质
小牛编辑
132浏览
2023-12-01

描述 (Description)

如果需要指数,则java.math.BigDecimal.toString()返回此BigDecimal的字符串表示形式,使用科学记数法。

通过以下步骤创建BigDecimal的标准规范字符串形式:首先,使用字符“0”到“9”将BigDecimal的未缩放值的绝对值转换为十进制字符串,不带前导零(除非它的值为零,在这种情况下使用单个'0'字符)。

接下来,计算调整后的指数; 这是否定的比例,加上未转换的非标定值中的字符数,减去一个。 也就是说,-scale +(ulength-1),其中ulength是十进制数字中未缩放值的绝对值的长度(其精度)。

如果标度大于或等于零且调整后的指数大于或等于-6,则该数字将转换为字符形式,而不使用指数表示法。

在这种情况下,如果比例为零,则不添加小数点,如果比例为正,则将插入小数点,并使用比例指定小数点右侧的字符数。 根据需要,将“0”字符添加到转换后的未缩放值的左侧。 如果在插入之后没有字符在小数点之前,则以常规的'0'字符作为前缀。

否则(即,如果比例为负,或调整的指数小于-6),则使用指数表示法将数字转换为字符形式。 在这种情况下,如果转换后的BigInteger有多个数字,则在第一个数字后面插入一个小数点。

然后以转换的非标定值(可能带有插入的小数点)为字符形式的指数后缀; 这包括字母'E',紧接着调整后的指数转换为字符形式。

后者位于十进制,使用字符'0'到'9'没有前导零,并且如果调整后的指数为负数,则总是以符号字符' - '('\ u002D')作为前缀,'+'( '\ u002B')否则。

最后,如果未缩放的值小于零,则整个字符串以减号字符' - '('\ u002D')为前缀。 如果未缩放的值为零或正数,则不会为符号字符添加前缀。

声明 (Declaration)

以下是java.math.BigDecimal.toString()方法的声明。

public String toString()

覆盖 (Overrides)

Object toString。

参数 (Parameters)

NA

返回值 (Return Value)

此方法返回此BigDecimal的字符串表示形式。

异常 (Exception)

NA

例子 (Example)

以下示例显示了math.BigDecimal.toString()方法的用法。

package cn.xnip;
import java.math.*;
public class BigDecimalDemo {
   public static void main(String[] args) {
      // create a BigDecimal object
      BigDecimal bg;
      // create a String object
      String s;
      MathContext mc = new MathContext(3); // 3 precision
      bg = new BigDecimal("1234E4", mc);
      // assign the string value of bg to s
      s = bg.toString();
      String str = "String value of " + bg + " is " + s;
      // print s value
      System.out.println( str );
   }
}

让我们编译并运行上面的程序,这将产生以下结果 -

String value of 1.23E+7 is 1.23E+7