62,629
社区成员
发帖
与我相关
我的任务
分享
BigDecimal bg=new BigDecimal("3.456785E-8");
System.out.println(bg.toPlainString());
BigDecimal bg=new BigDecimal("3.456785E-8");
System.out.println(bg.toPlainString());
看看
java.text
类 DecimalFormat
java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.DecimalFormat
科学计数法
科学计数法中的数表示为一个尾数和一个 10 的几次幂的乘积,例如可将 1234 表示为 1.234 x 10^3。尾数
的范围通常是 1.0 <= x < 10.0,但并非必需如此。可指示 DecimalFormat 仅通过某个模式 来格式化和解
析科学计数法表示的数;目前没有创建科学计数法格式的工厂方法。在这个模式中,指数字符后面紧跟着一个或
多个数字字符即指示科学计数法。示例:"0.###E0" 将数字 1234 格式化为 "1.234E3"。
指数字符后面的数字位数字符数给出了最小的指数位数。没有最大值。使用本地化的减号来格式化负数指数,不 使用模式中的前缀和后缀。这就允许存在诸如 "0.###E0 m/s" 等此类的模式
最小和最大整数数字位数一起进行解释:
如果最大整数数字位数大于其最小整数数字位数并且大于 1,则强制要求指数为最大整数数字位数的倍数,并将
最小整数数字位数解释为 1。最常见的用法是生成工程计数法,其中指数是 3 的倍数,如 "##0.#####E0"。
使用此模式时,数 12345 格式化为 "12.345E3",123456 则格式化为 "123.456E3"。
否则通过调整指数来得到最小整数数字位数。示例:使用 "00.###E0" 格式化 0.00123 时得到 "12.3E-4"。
尾数中的有效位数是最小整数 和最大小数 位数的和,不受最大整数位数的影响。例如,使用 "##0.##E0" 格
式化 12345 得到 "12.3E3"。要显示所有位数,请将有效位数计数设置为零。有效位数不会影响解析。
指数模式可能不包含分组分隔符。
DecimalFormat df = new DecimalFormat("#,###.##");
String strValue = df.format(doubleValue);