黑马程序员技术交流社区

标题: 取模,模数可以为小数吗。? [打印本页]

作者: 搁浅灬石头    时间: 2014-10-13 23:34
标题: 取模,模数可以为小数吗。?
本帖最后由 搁浅灬石头 于 2014-10-16 12:22 编辑

取模运算时,老师只讲了整数,却没讲小数,问下5 % 3.21  这样可以吗?
我知道运行一下是可以的,我想知道java内部是如何处理的啊。
哪位大神指点一下啊


还有,我想知道是如何计算的,并不是敲代码试运行一下,就算了。

作者: 郑飞    时间: 2014-10-14 06:16
没试过 凭感觉应该是右边先自动转换然后再取模吧 有错楼下更正...
作者: HM2014nuli    时间: 2014-10-14 07:04
如果不知道行不行,为什么不自己去摸索一下呢?,其实是可以的,5%3.21的值是1.79
作者: Nullifier    时间: 2014-10-14 09:14
Demo一下呗
作者: 菜鸟一号    时间: 2014-10-14 09:32
这也行?没试过哦
作者: new999    时间: 2014-10-14 09:39
试试看~~~
作者: 夕默    时间: 2014-10-14 10:03
取模就是求余数,你觉得可以对小数取余数吗?
作者: 饼子    时间: 2014-10-14 10:09
应该是先变成3然后取模
作者: tiancairc    时间: 2014-10-14 10:25
要么是余数,要么是小数,既然有小数了就没必要在取余数了,取没取效果一一样。所以取余数是不涉及小数的。
作者: 搁浅灬石头    时间: 2014-10-14 23:34
我试过额,我不是问一下,好让不知道的人,都知道吗,汗。
作者: zz_job    时间: 2014-10-14 23:44
没查到..
作者: cs8630323    时间: 2014-10-15 12:14
不错,敢于问问题
我自己是试了下,取模两个数都可以为小数
比如6%5.5=0.5,  和整数取模原理一样,6.0除以5.5=1余0.5
6%5.6=0.4,但是运行结果是0.40000000000000036,这个是因为取模是底层二进制运算,结果是0.4无法用二进制表示,会有误差,如果小数部分是0.25,0.5等就可以得到准确数

作者: cs8630323    时间: 2014-10-15 12:16
tiancairc 发表于 2014-10-14 10:25
要么是余数,要么是小数,既然有小数了就没必要在取余数了,取没取效果一一样。所以取余数是不涉及小数的。 ...

呵呵,回答前自己先试下
作者: cs8630323    时间: 2014-10-15 12:17
夕默 发表于 2014-10-14 10:03
取模就是求余数,你觉得可以对小数取余数吗?

呵呵,回答前自己先试下,怎么不可以
作者: 夕默    时间: 2014-10-15 12:58
cs8630323 发表于 2014-10-15 12:17
呵呵,回答前自己先试下,怎么不可以

是可以得到一个数。可是,你不觉得怪怪的吗?
作者: 家进    时间: 2014-10-15 13:06
据猜测,是直接运算 5 - 3.12  =1.79  
作者: cs8630323    时间: 2014-10-15 14:14
夕默 发表于 2014-10-15 12:58
是可以得到一个数。可是,你不觉得怪怪的吗?

有什么怪的,只是平时都是整数取模惯了,思维固化了
作者: FlyFish    时间: 2014-10-15 14:21
第一次发现!
作者: youtianlong123    时间: 2014-10-15 14:56
我都没试过
作者: lishuliang28    时间: 2014-10-15 15:04
还真没那么试过呢
作者: yangzhong1991    时间: 2014-10-15 15:22
我没试过,今天试试去
作者: 面具猴    时间: 2014-10-15 17:00
会不会是先5 /3.21=1.5576,再把整数去掉得0.5576,再乘以0.5576*3.21,得到的呢?
作者: 搁浅灬石头    时间: 2014-10-16 12:22
Nullifier 发表于 2014-10-14 09:14
Demo一下呗

我想知道怎么运算的。
作者: 黄小橙    时间: 2014-10-19 17:12
看看、、、、、、




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2