打印

讨论——两int型数据相除怎得到一个两位小数点的数字

[复制链接]
1115|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuntian2016|  楼主 | 2016-9-23 20:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,该问题的比较有意思的,,我们会问了——为什么不直接的用两个float型数据的相除的,不说两个小数点了,3个、4个的都不在话下的,,

这里还是归结到一点的——程序的执行效率及如编程者的习惯的。。。
我们经常用的数据就是Int型的,8位、16位、32位的整型数据的计算都比float型的数据来的直接、来的效率高的,尤其是做乘除运算的。。
沙发
chuntian2016|  楼主 | 2016-9-23 20:21 | 只看该作者
回到问题本省的。。。

该怎样实现呢?说简单也简单的拉,就是我们常说的增大缩小的一个过程的,这只是常用的一个方式之一的。。
如正常情况下1/4=0.25的,但是在C语言的int型的数据运算中,我们发现最后得到的是0,,为啥呢?

使用特权

评论回复
板凳
chuntian2016|  楼主 | 2016-9-23 20:25 | 只看该作者
这里可以这样处理下的,直接的做如下运算的:(1*100)/4=25,这个25的在我们做数据解析的时候,不就可以直接的再/100的不久Ok了?
这里涉及到一个问题的就是我们得到的int型数据25可以直接转换成float型的数据25.00的,没有任何数据的损失的。。

使用特权

评论回复
地板
chuntian2016|  楼主 | 2016-9-23 20:26 | 只看该作者
好了,说了这么多的,大家也发表下意见的啊

使用特权

评论回复
5
yu515301489| | 2016-9-24 15:32 | 只看该作者
怎么感觉你像机器人…………

使用特权

评论回复
6
vivilzb1985| | 2016-9-25 12:24 | 只看该作者
这个简单的处理的算法的可以借鉴下的。。

使用特权

评论回复
7
comeon201208| | 2016-9-25 18:08 | 只看该作者
chuntian2016 发表于 2016-9-23 20:25
这里可以这样处理下的,直接的做如下运算的:(1*100)/4=25,这个25的在我们做数据解析的时候,不就可以直 ...

这个做数据的扩大与缩小的处理的。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

1485

帖子

1

粉丝