double四舍五入保留两位小数double d1 = Math.round(4.015*100)/100.0;为什么打印为4.01?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 16:23:40

double四舍五入保留两位小数double d1 = Math.round(4.015*100)/100.0;为什么打印为4.01?
double四舍五入保留两位小数
double d1 = Math.round(4.015*100)/100.0;
为什么打印为4.01?

double四舍五入保留两位小数double d1 = Math.round(4.015*100)/100.0;为什么打印为4.01?
我猜测如下,因为4.015,小数部分的0.015表示成2进制数时是无限循环的,因此用double型表示4.015时,由于double的位数有限,所以只能用一个略小于4.015的数(肯定是略小于,因为只有位数无限时,这个2进制数才能等于0.015)去近似表示4.015,假设这个数是4.0149.,那么乘100后是401.49.,Math.round后是401.