真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

Ruby取模探險記-創(chuàng)新互聯

Ruby 的負數除法為什么要向負無窮取整呢?

甘井子網站建設公司創(chuàng)新互聯,甘井子網站設計制作,有大型網站制作公司豐富經驗。已為甘井子上千提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站建設公司要多少錢,請找那個售后服務好的甘井子做網站的公司定做!

今天學習Ruby的過程中遇到一個問題:

puts (5 % 3)  # prints 2
puts (-5 % 3) # prints 1
puts (5 % -3) # prints -1
puts (-5 % -3)# prints -2

看了半天表示沒有找到什么好的規(guī)律...

于是搜之,翻到了整數除法定義:

class Float
   def to_s
       format("%.4f", self)
   end
end

class Fixnum
   def / (num)
       self.to_f/num.to_f
   end
end

感覺ruby定義的真是干凈利落!貌似只要是懂英語的都能看懂呵呵~

先轉成浮點,然后除之。

那么-5%3怎么就等于-1了呢?

有公式a%b = a - (a/b * b).于是乎,應該先求出來-5/3。根據上面公式知道-5/3會利用小數除法,即-5/3 = -1.6666666...那該怎么去小數部分呢?起初我以為是按照取絕對值,然后四舍五入,那么-1.6666666...應該是-2,沒錯,對于這個除法結果是正確的。

但是,對于-4%3呢?

按照取絕對值,然后四舍五入來算,那么-4/3 = -1.33333...那么,應該得到-1,于是乎,模應該是-1;不過,大家都懂得,既然都寫到這了,怎么著這個值也不能再等于-1了吧。呵呵,你猜的沒錯,(-4/3 == -2)這個表達式是true。

What's the fuck???!??!

我-4怎么能和-5一樣???我-4的那個1呢?。?!我-4竟然和“歐巴”-5一樣大Ruby取模探險記這讓我以后再數字界怎么混@_@

好了,言歸正傳,為什么會這樣,又搜了搜,發(fā)現下面的一些注解:

問:"Ruby rounds(翻譯成圓整?取整?四舍五入?) toward negative infinity."IA32 的div命令不是向零取整嗎?rub為什么要多此一舉向負無窮rounds呢?這樣有什么特別的意義嗎?

答:沒有什么特別的意義,在《Ruby Programming Language》3.1.3中說明了,與C相關的語言,如C,C++,Java是向零取整,Python,Tcl,Ruby是向負無窮取整。在x86指令中,SAR是向右取整的,IDIV是向零取整的。

好吧,原來就是這么平淡無奇的原因,以為會有什么好的發(fā)現,有些失望...

就這么著吧,傷心了呵呵~

創(chuàng)新互聯www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現已開啟,新人活動云服務器買多久送多久。


分享文章:Ruby取模探險記-創(chuàng)新互聯
地址分享:http://weahome.cn/article/dsejoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部