中易网

y=(int)(x*pow(10,m)+0.5);谁能帮我完整的解释下这句话。谢谢。

答案:1  悬赏:20  
解决时间 2021-01-15 13:21
  • 提问者网友:末路
  • 2021-01-14 15:26
y=(int)(x*pow(10,m)+0.5);谁能帮我完整的解释下这句话。谢谢。
最佳答案
  • 二级知识专家网友:老鼠爱大米
  • 2021-01-14 16:31
(int)是强制转化,将所得到数值强制转换为整数(后面有加0.5,结果就是浮点数,强制转化后就把小数部分忽略了)。这个题目的意思我猜是一个可变精度的四舍五入的表达式。首先,pow(10,m)是一个幂函数,返回值是10^m。把x乘以10^m,这里肯定默认的前提是x是小数,不是整数。比如四舍五入保留到小数点后两位,则m是2。设x是5.789,则pow(10,2)等于10^2=100,x*100=578.9,这个结果加0.5后是579.4,最后强制转化的结果y就是579。这里肯定还有后面的下一步才有意义,就是把y/100.0,注意如果y直接除以100那结果就是5了,因为都是整型。除以100.0就是小数,579/100.0就是5.79,完成了四舍五入。
建议以后这种费脑子的题目应该加悬赏啊,哈哈
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息