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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0217
ookenn小数の計算6解決


ookenn

リンク

2011/2/17(Thu) 21:58:42|NO.37157

すみません先ほどからプログラムを組んでいるのですが
mes 100*0.1 と入力すると
結果が0になるのですが
mes 0.1*100 だと
結果が10.0000になります
これっておかしくないですか?
もしかして私が無知なだけでしょうか
ご回答よろしくお願いします

一応スペック載せます
OS windows7 x64
RAM 4G
CPU corei7 740Q



この記事に返信する


てれてれ

リンク

2011/2/17(Thu) 22:07:40|NO.37158

HSPでは、数値の型は式の一番最初(左)の数値の型に合わせて計算が行われます。
つまり、[小数]×[整数]の績は[小数]で返されますし、[整数]×[小数]の績は[整数]で返されます。



SYAM

リンク

2011/2/17(Thu) 22:16:54|NO.37159

100*0.1 を「整数で返す」とたぶん10が返って来てほしい気がするのです。



てれてれ

リンク

2011/2/17(Thu) 23:07:03|NO.37161

>100*0.1 を「整数で返す」とたぶん10が返って来てほしい気がするのです。

前記の通りです。
>HSPでは、数値の型は式の一番最初(左)の数値の型に合わせて計算が行われます。



ORZ

リンク

2011/2/17(Thu) 23:07:20|NO.37162

計算の段階で左に揃えてるのか
100*0.1→100*0

すごいな。



てれてれ

リンク

2011/2/17(Thu) 23:26:08|NO.37163

HSP3 プログラミング・マニュアルにも記載されていますね。
>整数値、実数値、文字列、関数を混在した式を書くことも可能です。 その場合は、計算する最初の項に合わせて、後の項が型変換されます。 たとえば、「8 + 4.5」のような計算は、最初の8(整数)に合わせて4.5は、4(整数)として扱われます。 逆に、「4.5 + 8」の場合は4.5(実数)に合わせられて12.5という計算結果になります。
>
>数値が整数か実数かは、小数点があるかないかで区別されます。 実数型での演算を行なう場合には、明示的に「8.0 + 4.5」のように小数点を 入れるようにする必要があります。 また、「1.0e+10」のように「e」に続けて指数部を指定することで大きな桁を持つ実数を表現することも可能です。 ただし、実数値の扱いは整数値に比べてメモリ効率や速度のコストが高くなりますので注意してください。



ookenn

リンク

2011/2/17(Thu) 23:37:00|NO.37165

なるほど
すみませんマニュアルにも記載されていることを見逃してしまっていました。
ORZさんが言っているように
>100*0.1→100*0
になってたわけですか〜
なるほど、今回はたまたま0.〜だったので結果に0しか返ってこなかったということですね
みなさんお早いご回答ありがとうございました



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