早教吧 育儿知识 作业答案 考试题库 百科 知识分享

double四舍五入保留两位小数doubled1=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.