[#44431] コンストラクタの引数について&インスタンス変数の持ち方について — Akira Hayakawa <ruby@...>
度々オブジェクト指向についての質問ですいません。
17 messages
2008/01/04
[#44433] Re: コンストラクタの引数について&インスタンス変数の持ち方について
— Yukihiro Matsumoto <matz@...>
2008/01/04
まつもと ゆきひろです
[#44453] RSS取得時<enclosure>タグでエラー? — "garyo hosu" <garyohosu@...>
garyoです。いつもお世話になっております。
5 messages
2008/01/08
[#44463] [ANN] Rails勉強会@東京 第26回のお知らせ — "MOROHASHI Kyosuke" <moronatural@...>
各位
1 message
2008/01/11
[#44464] [ANN] rcairo 1.5.1 — Kouhei Sutou <kou@...>
須藤です。
5 messages
2008/01/11
[#44469] pdf 作成 ライブラリ — "Luiz Aoki" <luizruby@...>
はじめまして、青木ルイスと申します、
14 messages
2008/01/12
[#44479] ファイル出力時のprintについて
— m-hatake@...
2008/01/16
畠山と申します。
[#44481] Re: ファイル出力時のprintについて
— KIMURA Koichi <kimura.koichi@...>
2008/01/16
木村です。
[#44483] format %g の丸めについて — 山崎雄介 <y-yamasaki@...>
山崎(ゆ)です。
14 messages
2008/01/16
[#44517] www.ruby-lang.org/ja/man/ を静的HTMLに変更 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
6 messages
2008/01/20
[#44536] カタカナ→ひらがな変換 — "Hideo Konami" <konami@...>
小波です。
8 messages
2008/01/25
[ruby-list:44510] Re: format %g の丸めについて
From:
Tadashi Saito <shiba@...2.accsnet.ne.jp>
Date:
2008-01-17 12:49:49 UTC
List:
ruby-list #44510
斎藤と申します。
On Wed, 16 Jan 2008 22:59:25 +0900
山崎雄介 <y-yamasaki@saeilo.co.jp> wrote:
> それから、BigDecimal.newの二つ目の引数に有効桁数を指定できるらしく、内部の計算に
> は使われているようなのですが、フォーマットには反映されないようでした。
>
> val = BigDecimal.new("0.00000815", 2) # 有効数字2桁のつもり
> val.to_s => "0.815E-5" # 丸めてくれるかと期待したんですが。
自分の理解ではですが、第二引数は外部的には割り算のときに使われるのみで、
あとは内部処理に使われる(あらかじめ用意される内部配列のサイズを指定)だけで
あったと記憶しています。
非常にめんどくさいですが確実な方法としては、BigDecimal#splitがあります。
これを使うと、内部情報を生に近い状態で得ることができますから、
val = BigDecimal.new("0.00000815")
sign, str, base, exp = val.split # => 1, "815", 10, -5
v2 = BigDeciaml.new("0." + str)
v3 = v2.round(2) # 丸めたい桁数を指定
TEN = BigDecimal("10")
v4 = v3 * TEN ** exp
puts v4 #=> 0.82E-5
と、比較的お望みに近いモノが得られると思います。
# signやbaseは、まず使うことはないでしょう。
ここで、TENを「10」とリテラルIntegerで指定してしまうと、expが負の時に
「10 ** exp」がFloatとなります。
BigDecimalはFloatを黙って受け入れ、かつその結果はFloatとなって
しまうため、精度が保証できなくなる点は気を付けた方がよいかもしれません。
--
斎藤ただし