因为计算机是用二进制0和1存储信息的,对于十进制的小数,需要先转成二进制才能存入计算机(整数部分除2取余,小数部分乘2取整),在十进制0.1和0.9之间(包括0.1和0.9)的小数,转换成二进制后只有0.5才能转换成有限小数,而其它的只能转换成无限小数.
float和double根据其精度来对该无限小数进行截取存入计算机,
下面出现的四舍五入问题也是由于精度问题导致的:
因为计算机是用二进制0和1存储信息的,对于十进制的小数,需要先转成二进制才能存入计算机(整数部分除2取余,小数部分乘2取整),在十进制0.1和0.9之间(包括0.1和0.9)的小数,转换成二进制后只有0.5才能转换成有限小数,而其它的只能转换成无限小数.
float和double根据其精度来对该无限小数进行截取存入计算机,
下面出现的四舍五入问题也是由于精度问题导致的: