解决double类型数据数值太大自动转为科学计数法的问题
直接上代码import java.math.*;class TestDouble {public static void main(String[] args) {double num1 = 8.2347983984297E-7; // 小于1double num2 = 8.2347983984297E7;// 大于1BigDecimal bd1 = new BigDecimal(String.v
·
直接上代码
import java.math.*;
class TestDouble {
public static void main(String[] args) {
double num1 = 8.2347983984297E-7; // 小于1
double num2 = 8.2347983984297E7; // 大于1
BigDecimal bd1 = new BigDecimal(String.valueOf(num1));
BigDecimal bd2 = new BigDecimal(String.valueOf(num2));
// 转为字符串形式
String str1 = bd1.toPlainString();
String str2 = bd2.toPlainString();
System.out.println(str1 + "\n" + str2);
}
输出
0.00000082347983984297
82347983.984297
附上之前看到的,并不起作用:
// 方式一, 只对>1的数起作用,小于1的数亲测还是没有解决
double num=8.2347983984297E7;
String str=new BigDecimal(num+"").toString();

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)