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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0720
バットサイレントテスト変数の計算について5解決


バットサイレントテスト

リンク

2019/7/20(Sat) 12:06:54|NO.87895

以下のプログラミングを組むと
変数rrrが0になってしまいます
何が間違っているのでしょうか

input aaa
button"",*bbb
stop
*bbb
mes aaa
rrr=4/aaa*60
mes rrr



この記事に返信する


科学太郎

リンク

2019/7/20(Sat) 12:34:41|NO.87896

> rrr=4/aaa*60
この行を

rrr=4.0/aaa*60
とすれば良いでしょう。



Ponyo

リンク

2019/7/20(Sat) 12:45:22|NO.87897

他のスレの私のレスのコピペですが...

計算は最初に定義した変数の型を基準にして下さい。
整数型に変数を宣言したら、加算したり減算したりなどは整数で扱い
実数(簡単に言えば少数)型に変数を宣言したら、加算したり減算したりなどは実数で扱って下さい。

仮に最初に整数型の変数を宣言し実数の計算(0.5や0.01など)を行う時に
実数は四捨五入されて強制的に整数型での計算になります。

str 、int や double などの変数型変換関数も理解した方がいいとお勧めします。



Ponyo

リンク

2019/7/20(Sat) 12:50:22|NO.87898

↑の続きです。
割り算を使うときには doubleという関数 または、式の先端に 「1.0*」を付けてください。
()がある場合の計算でも念の為「1.0*」を優先にしてください。
1.0は実数(少数)型なのでコンピュータは「実数(少数)の計算」だと認識してくれます。

なので主さんの例では rrr=4/aaa*60 は rrr = ( 1.0 * 4 / aaa * 60 ) で正常な結果を得てくれます。
計算順番では rrr = double( 4 / aaa * 60 ) は正常な結果でませんのでご注意ください。



沢渡

リンク

2019/7/20(Sat) 20:44:24|NO.87900

議題とは直接関係ないですが、
そのコードだと入力欄に0を入力すると0除算エラーになってしまいますね。
入力された数値をチェックし、0だったら弾くような処理が必要なのではないかと。



バットサイレントテスト

リンク

2019/8/29(Thu) 20:08:31|NO.88264

ありがとうございました



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