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

来源:学生作业帮助网 编辑:作业帮 时间:2024/06/12 20:52:00
double四舍五入保留两位小数double d1 = Math.round(4.015*100)/100.0;为什么打印为4.01?
xQN@j> ,_G@0qa|E iŅBff:ﴍ1rӤ%B:Ud7^ZxZ%iI,y}糅Lz/ʋR@}>x,-h. Sex*/)g{O)Q%׍uG>+ ~Ǹ e]aފlH_G&r퐺:g@ i_wjxex dfD1 To k| [ P@+S#J-j,UD5h| ȴdI6 ߎRnhl,doq-[G2odșmy֥78.ܸ1Dxl_e; Wd& 

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.