Java.math.BigDecimal.toString() 方法

描述

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

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

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

如果小数位数大于等于 0 且调整后的指数大于等于 -6,则不使用指数符号将数字转换为字符形式。

在这种情况下,如果比例为零,则不添加小数点,如果比例为正,则会插入小数点,比例指定小数点右侧的字符数。 必要时将"0"字符添加到转换后的未缩放值的左侧。 如果在此插入之后小数点之前没有字符,则以常规的"0"字符为前缀。

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

然后将字符形式的指数后缀为转换后的未缩放值(可能插入小数点); 这包括字母"E",紧随其后的是转换为字符形式的调整指数。

后者以 10 为底,使用字符 '0' 到 '9',不带前导零,如果调整后的指数为负,则始终以符号字符 '-' ('\u002D') 为前缀,'+' ( '\u002B') 否则。

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


声明

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

public String toString()

Overrides

Object 中的 toString。


参数

NA


返回值

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


异常

NA


示例

下面的例子展示了 math.BigDecimal.toString() 方法的使用。

package com.tutorialspoint;

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