2011年9月29日

[ruby-list:48423] Re: 切り捨てについて教えてください

中田です。
早速、ご教授ありがとうございます。

運用上は

(1300 * (0.7 * 100) / 100) #=> 910.0
(1300 * (0.7 * 100) / 100).floor #=> 910
(1300 * (0.7 * 100) / 100).truncate #=> 910


とすれで良いのでしょうか?

運用上のプログラミングや注意点等を
ご教授頂けないでしょうか?

On 2011/09/29, at 4:12, U.Nakamura wrote:

> こんにちは、なかむら(う)です。
>
> In message "[ruby-list:48421] 切り捨てについて教えてください"
> on Sep.29,2011 03:37:29, <acnakada@xxxxx> wrote:
>> この違いはなぜでしょうか? 教えてください
>
> 目に見えているものが必ず正しいわけでもありません。
>
> 一般に、コンピュータの浮動小数点数演算は2進数で行われるため、
> 我々が扱いたがる10進数で同じ値を考えた場合、割り切れるかどう
> かが異なるケースがあります。
> そのため、10進数で考えた場合に当然予測される値と、実際にコン
> ピュータが計算した結果とが微妙に異なる値となることがあります。
>
> 私のコンピュータの場合、1300*0.7の値は具体的には
> 909.9999999999998863131622783839702606201171875
> になります。
> よって、小数点以下の切捨てを行うと909になります。
>
>
> それでは。
> --
> U.Nakamura <usa@xxxxx>
>
>

====================
中田 隆雄
acnakada@xxxxx
====================

投稿者 xml-rpc : 2011年9月29日 10:18
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/106578
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。