私はRuby初心者で、「プログラミングRuby 1.9」(PickAxe)を使って学習しています。attr_accessorのキャスト値を入力してください
1 #!/usr/bin/env ruby -w
2
3 class BookInStock
4 attr_reader :isbn
5 attr_accessor :price
6 def initialize(isbn, price)
7 @isbn = isbn
8 @price = Float(price)
9 end
10 # def price=(price)
11 # @price = Float(price)
12 # end
13 end
14
15 b1 = BookInStock.new("isbn1", 3)
16 p b1
17 b2 = BookInStock.new("isbn2", 3.14)
18 p b2
19 b3 = BookInStock.new("isbn3", "5.67")
20 p b3
21 b3.price = "10.32"
22 p b3
行番号8は、正しい値がb3.price
に割り当てられていることを保証します。本の中で、私はこのように修正プログラムを参照してください。
しかし、10行目のような方法を使用せずに21行目のようなケースを処理するにはどうすればよいですか?
attr_accessor
を変更する方法はありますか?または、私はあまりにも多くを求めています:D
私はそのような参考文献をオンラインで見つけることができませんでした。
のようにそれを使用しています。 '0.30 + 0.30 + 0.30'は' 0.8999999999999999'となる。 –
財務計算が必要な場合は、Floatの代わりに[BigDecimal](http://www.ruby-doc.org/stdlib-1.9.3/libdoc/bigdecimal/rdoc/BigDecimal.html)を使用してください –
ありがとうございます。他の参考文献でそのことを読んでください。ちょうどこれが始めるのは簡単な例でした。提案にもう一度感謝します。 –