double和float问题

来源:2-2 Java 开发工具,IntelliJ IDEA 下载与安装

Meiyounaozi

2024-05-21

问题1:double和float 区别只是空间优化吗?
精度要求高用double 要求不高用float

问题2:0.1+0.2这个问题如果想要得到正确的答案要怎么做?

写回答

1回答

彭彭老师

2024-05-21

float 是单精度浮点数,占 4 字节内存,使用 32 位表示一个浮点数;double 是双精度浮点数,占 8 字节内存,使用 64  位表示一个浮点数,精度较高,表示的数值范围更大。精度要求高,或更大的数值范围,用 double 类型;对精度和数值范围要求不高,或需要节省存储空间,用 float 类型。


0.1 + 0.2,可以将计算结果保留指定小数位数,比如保留两位小数,或者使用 BigDecimal 类进行精准计算,商业计算中通常使用 BigDecimal 类,可以参考以下示例

double d1 = 0.1;
double d2 = 0.2;

// 输出结果保留两位小数
System.out.println("d1 + d2 = " + String.format("%.2f", d1 + d2));

// 创建BigDecimal对象
BigDecimal big_d1 = new BigDecimal(String.valueOf(d1));
BigDecimal big_d2 = new BigDecimal(String.valueOf(d2));

// 加法运算
System.out.println("d1 + d2 = " + big_d1.add(big_d2));

https://img1.sycdn.imooc.com/szimg/664c0fe00928c78d08250262.jpg

1
0

Java零基础入门与实战

Java零基础入门与实战 多场景|多案例|全栈项目

276 学习 · 220 问题

查看课程