HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0504
area39小数点の取り扱い4未解決


area39

リンク

2008/5/4(Sun) 19:27:00|NO.15629


dialog int( 0.4 + 0.2 + 0.1 + 0.1 ) dialog strf("%0.0f",0.4 + 0.2 + 0.1 + 0.1) end

これはなぜ1にならないのですか?



この記事に返信する


Kpan

リンク

2008/5/4(Sun) 19:48:30|NO.15630

上が小数点以下切捨て
下が四捨五入

で処理されてるから?



area39

リンク

2008/5/5(Mon) 11:08:54|NO.15659


dialog int( 0.4 + 0.4 + 0.2 )


でも、これだと、1になるんですよね。



begriff

リンク

2008/5/5(Mon) 11:42:59|NO.15660

>>dialog int( 0.4 + 0.4 + 0.2 )

>>でも、これだと、1になるんですよね。

0.4 + 0.4 + 0.2=1.0ですし切り捨てても「1」ですよ
0.4 + 0.2 + 0.1 + 0.1は0.8なので切り捨てると「0」というわけ

まぁ四捨五入というかこの場合数値の丸みと言うべきでしょうが
この辺は以外に話が難しい・・・JIS並びISOで定義されていますが
プログラミング言語はこの規準に沿って計算しているのがたいていです

JIS Z8401

公式HP
http://www.jisc.go.jp/app/pager?id=3528


http://www.bsddiary.net/doc/jis-z8401.html



nozomu-jhs

リンク

2008/5/6(Tue) 14:01:49|NO.15688

計算ミスですなこりゃ・・・。

ついでにすなおに0.8と表示させるなら
dialog int( 0.4 + 0.2 + 0.1 + 0.1 )

dialog double( 0.4 + 0.2 + 0.1 + 0.1 )
に変更。

あと

strf("0.0f" (以下略)

これはパディングなのですか?桁数ですか? area39さん、自分のスクリプト(No.15629)見直してみて見て下さい。



ONION software Copyright 1997-2023(c) All rights reserved.