浮点数问题:特殊浮点数,任意精度小数,合并模式

本文介绍了Java中IEEE754规定的特殊浮点数及其运算结果,并通过实例展示了如何使用Java的BigDecimal类实现任意精度的小数运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1, IEEE754规定的5个特殊的浮点数

运行以下代码,

 

public class Main{
	public static void main(String[] args) {
		double a = 3.0/0;
		System.out.println(a);
		System.out.println(1/a);
		System.out.println(-a);
		System.out.println(1/(-a));
		System.out.println(a-a);
		System.out.println(a/a);
	}
}

 

得出结果:

Infinity

0.0

-Infinity

-0.0

NaN

NaN

这5个数字就是特殊的浮点数值。Infinity代表无穷大。NaN表示不是一个数,计算0/0或者负数的平方根结果就是NaN。

 

2.任意精度小数

java 有一个类:java.math.BigDecimal 可以求出指定位数的小数。

import java.math.BigDecimal;
import java.math.MathContext;

public class Main{
	public static void main(String[] args) {
		//有效数字100位,任意精度小数
		BigDecimal a = BigDecimal.valueOf(1).divide(BigDecimal.valueOf(6), new MathContext(100));
	}
}

 

3 合并模式 浮点数常用的是四舍五入,或者四舍六入五成双(在统计学里防止.5舍入误差的累计)。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值