如何在 Ruby 中使用 BigDecimal?


使用BigDecimal,你可以執行任意精度的浮點數十進位制運算。讓我們用一個示例來理解BigDecimal 的用例。我們將舉兩個示例,第一個示例將不使用BigDecimal,第二個示例中,我們將會使用BigDecimal

考慮下面顯示的程式碼,我們在其中不使用BigDecimal,並多次向一個數字中新增一些十進位制值。

示例 1

# without using bigInteger

def calculateSum()
   sumOfNumbers = 0
   10_000.times do
      sumOfNumbers = sumOfNumbers + 0.0001
   end
   return sumOfNumbers
end

puts calculateSum()

輸出

0.9999999999999062

現在,讓我們對上面顯示的示例使用BigDecimal,看看它會產生什麼差異。

考慮下面顯示的程式碼,其中使用了BigDecimal

示例 2

require 'bigdecimal'
# with using bigInteger
def calculateSum()
   sumOfNumbers = BigDecimal("0")
   10_000.times do
      sumOfNumbers = sumOfNumbers + BigDecimal("0.0001")
   end
   return sumOfNumbers
end
puts calculateSum()

輸出

0.1e1

示例 3

BigDecimal 有時在除零時需返回無窮大。考慮下面顯示的程式碼。

require 'bigdecimal'
puts BigDecimal("2.0") / BigDecimal("0.0")
puts BigDecimal("-2.0") / BigDecimal("0.0")

輸出

Infinity
-Infinity

更新於: 2022 年 1 月 25 日

1K+ 瀏覽

開啟你的職業

完成課程獲得認證

開始
廣告
© . All rights reserved.