[問題] 小數的四捨五入

看板Ruby作者 (台中喵小咩)時間17年前 (2007/11/13 23:46), 編輯推噓4(405)
留言9則, 3人參與, 最新討論串1/5 (看更多)
環境: Ruby 1.8.6 狀況: ruby 的 round method 好像只能取 整數 例如: (1.5).round ==>> 2 (-1.5).round ==>> -2 可是如果我希望像 excel 的 ROUND 函數一樣 ROUND(數字, 取到小數的第幾位數) 例如: ROUND(1.2345, 3) ==>> 1.235 ROUND(1.2345, 1) ==>> 1.2 ROUND(1.2345, 0) ==>> 1 像這樣的功能應該怎麼寫比較好呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.225.163.65 ※ 編輯: shelary 來自: 61.225.163.65 (11/14 00:51)

11/14 00:56, , 1F
BigDecimal("1.23456").round(3)..類似這樣吧
11/14 00:56, 1F

11/14 01:34, , 2F
看沒有 @@"
11/14 01:34, 2F

11/14 07:35, , 3F
BigDecimal 是 java 的,不確定 ruby 有沒有
11/14 07:35, 3F

11/14 07:36, , 4F
勉強用 sprintf 吧 @@ "%.3f" % 1.2345; 不過有些時候
11/14 07:36, 4F

11/14 07:37, , 5F
.5 沒進位,有時候又會,不知道為什麼 XD
11/14 07:37, 5F

11/14 10:21, , 6F
11/14 10:21, 6F

11/14 10:25, , 7F
require 'bigdecimal'
11/14 10:25, 7F

11/14 10:25, , 8F
puts BigDecimal("0.12345").round(4).to_f
11/14 10:25, 8F

11/14 10:30, , 9F
XDD 沒查到,怪不得就覺得之前好像看過又沒查到怪怪的
11/14 10:30, 9F
文章代碼(AID): #17ESRPBj (Ruby)
文章代碼(AID): #17ESRPBj (Ruby)