2021-10-28

本文探讨了编程中浮点数存在的精度问题,解释了为什么不能直接比较float和double类型的数值,并建议使用BigDecimal进行精确计算。同时,提到了字符型在内存中的本质以及字符串对象的内存区别,强调了字符串比较的注意事项。

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

数据类型

1. 整数进制
  • 二进制0b
  • 十进制
  • 八进制0
  • 十六进制0x
2. 浮点型
	float f = 0.1f; // 有限 离散 舍入误差 大约 接近但不等于
	double d = 1.0/10;
	f == d //false

原因:因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。
注:根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值

结论:浮点型float对数据会进行大约计算,所以尽量不使用浮点型进行比较。可以使用 BigDecimal(数学工具类)

3.字符型
字符型的本质还是数字,按照编码对应他们的字符。
转义字符
4.内存引起的区别
	String sa = new String("yigezifuchuan");
	String sb = new String("yigezifuchuan");
	sa == sb; //false

类型转换

优先级
低-->高(自动转换)
高-->低(强制转换)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值