String toString()
描述 (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