c++这两个结果为什么不同?

[复制链接]
查看11 | 回复4 | 2012-9-25 12:34:28 | 显示全部楼层 |阅读模式
m=M/10这一句是先按整数除法,除完再转成float型,所以上面的一定有小数,第2个没有小数的!...
回复

使用道具 举报

千问 | 2012-9-25 12:34:28 | 显示全部楼层
保留一位小数,第一种输出时直接截断了,第二种借助整数做了四舍五入。先乘10保证被修改的是原来的第二位小数,加0.5就把四舍五入中的“五”的情况直接变成了向前一位进一,而“四”的情况就被保留在0.9几以内,大M整型截断的时候直接舍弃小数部分...
回复

使用道具 举报

千问 | 2012-9-25 12:34:28 | 显示全部楼层
能一样吗?两个完全不一样的数学式子得出的答案肯定不同;m=log(p/(p-d*r))/log(1+r) M=m*10+0.5即M=(log(p/(p-d*r))/log(1+r) )*10+(log(p/(p-d*r))/log(1+r) )*0.5m=M/10 即m=((log(p/(p-d*r))/log(1+r) )*10...
回复

使用道具 举报

千问 | 2012-9-25 12:34:28 | 显示全部楼层
假设m等于0.95,第二个式子算出来就是1。M=m*10+0.5中,=右边是整体算出来之后才赋给M的,并不是单独忽略小数部分...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行