- Java.math 包补充
- Java.math - 枚举
- Java.math - 讨论
Java.math.BigDecimal.toString() 方法
描述
java.math.BigDecimal.toString() 方法返回此 BigDecimal 的字符串表示形式,如果需要指数则使用科学计数法。
BigDecimal 的标准规范字符串形式是通过以下步骤创建的:首先,将 BigDecimal 的未缩放值的绝对值转换为以十为底的字符串,使用字符 '0' 到 '9',不包含前导零(除非其值为零,在这种情况下使用单个 '0' 字符)。
接下来,计算调整后的指数;这是负的 scale 值,加上转换后的未缩放值中的字符数,再减一。也就是说,-scale+(ulength-1),其中 ulength 是未缩放值的绝对值以十进制数字表示的长度(其精度)。
如果 scale 大于或等于零,并且调整后的指数大于或等于 -6,则该数字将转换为不使用指数表示法的字符形式。
在这种情况下,如果 scale 为零,则不添加小数点;如果 scale 为正数,则将插入一个小数点,scale 指定小数点右侧的字符数。根据需要,将 '0' 字符添加到转换后的未缩放值的左侧。如果插入后小数点前面没有字符,则在前面添加常规的 '0' 字符。
否则(即,如果 scale 为负数,或调整后的指数小于 -6),则该数字将转换为使用指数表示法的字符形式。在这种情况下,如果转换后的 BigInteger 超过一位数字,则在第一位数字后插入一个小数点。
然后将字符形式的指数附加到转换后的未缩放值(可能包含插入的小数点);它包括字母 'E',后跟立即转换后的调整指数的字符形式。
后者是以十为底,使用字符 '0' 到 '9',不包含前导零,如果调整后的指数为负数,则始终以符号字符 '-' ('\u002D') 为前缀;否则为 '+' ('\u002B')。
最后,如果未缩放的值小于零,则整个字符串以减号字符 '-' ('\u002D') 为前缀。如果未缩放的值为零或正数,则不添加任何符号字符。
声明
以下是java.math.BigDecimal.toString() 方法的声明。
public String toString()
覆盖
Object 类中的 toString 方法。
参数
无
返回值
此方法返回此 BigDecimal 的字符串表示形式。
异常
无
示例
以下示例演示了 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