android 谁能解释下这段代码什么意思?

2024年11月20日 23:37
有4个网友回答
网友(1):

  程序的意义:把浮点的千分位进行四舍五入,
这种算法的实用意义并不大,因为浮点数并不是十进制表示的,是不精确的,
当重新转换成浮点数后,也是不精确的,浪费了计算时间,只有最终转换成
十进制字符串时才有实用意义。
  先将数字前推两位,然后强制转型成整形丢失后面的位数。然后做差得到相差的数值。一个判断是来判断第三位(已经进了两位咯)是大于5的还是小于5的,大于五就进位。最后进行还原,返回四舍五入的数值。
  比如: 13.36 很可能重新变成 12.359999999998 之类的情况
  这段代码是一个if函数,double的具体长度可以根据资料进行详细查找就可以了。

网友(2):

四舍五入精确到百分位,但是略有不同的是进位的时候千分位大于5才向百分位进1,不确定的话就试试

网友(3):

程序的意义:把浮点的千分位进行四舍五入,
这种算法的实用意义并不大,因为浮点数并不是十进制表示的,是不精确的,
当重新转换成浮点数后,也是不精确的,浪费了计算时间,只有最终转换成
十进制字符串时才有实用意义。
比如: 13.36 很可能重新变成 12.359999999998 之类的情况

网友(4):

小数点的后面第三位四舍五入吧。我也是程序渣。。。对程序倒是蛮感兴趣的。double的具体长度自己参考书籍、网络资料吧。

就是先将数字前推两位,然后强制转型成整形丢失后面的位数。然后做差得到相差的数值。一个判断是来判断第三位(已经进了两位咯)是大于5的还是小于5的,大于五就进位。最后进行还原,返回四舍五入的数值。