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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0119
モロッコわりざんのやりかた7解決


モロッコ

リンク

2008/1/19(Sat) 19:36:11|NO.13156


ka3 = 5 / 100 *100 mes ka3
実行するとka3の中身は0になります
これをきちんと計算させる方法がわかりません
初歩的でごめんなさい
割り算で検索しましたが該当する記事はみつかりませんでした



この記事に返信する


f

リンク

2008/1/19(Sat) 19:40:46|NO.13158

・・・では、実数型について調べてみれば良いんでね?



モロッコ

リンク

2008/1/19(Sat) 19:52:01|NO.13159

doubleですね!
ka3 = double(5 / 100 *100)
mes ka3

しかし数値は0のまま・・・
使い方がまちがっていると思うけどわかりません



a

リンク

2008/1/19(Sat) 19:59:30|NO.13160

肝心の部分がintままだよそれ
ka3 = double(5) / 100 * 100
とか
ka3 = 5.0 / 100 * 100



GENKI

リンク

2008/1/20(Sun) 02:52:17|NO.13170

プログラミング・マニュアルの「式」の項目を読んでみてください。

> 整数値、実数値、文字列、関数を混在した式を書くことも可能です。その場合は、計算する
> 最初の項に合わせて、後の項が型変換されます。たとえば、「8 + 4.5」のような計算は、最
(以下略)

この辺です。これを読んだ上でもう一度スクリプトを見てみます。


ka3 = double(5 / 100 *100)
は最初に「5 / 100 *100」が計算され「0」に、次に「double(0)」がka3に代入されka3中身は0.0になります。
解決方法はaさんがおっしゃるとおりです。



SSS

リンク

2008/2/4(Mon) 05:59:20|NO.13411

>>ka3 = 5 / 100 *100
>>mes ka3
>>実行するとka3の中身は0になります
>>これをきちんと計算させる方法がわかりません

HSPでは、指定しない限り整数として計算されます。
簡単に言うと、割り算の結果の少数部分は切り捨てられます。
5/100=0.05 は0に成ります、0に100をかけても0です。

厳密な答えが必要でなければ 5*100/ 100 の様に、割り算を最後に持って行きます。

正確な数値が必要であれば
 1:上記にもあるとおり実数計算させる方法。
 2:たとえば少数3桁まで必要であれば、1000倍して割る(下3桁が少数)方法。
があります。



モロッコ

リンク

2008/2/7(Thu) 05:55:46|NO.13445

0



モロッコ

リンク

2008/2/7(Thu) 05:56:01|NO.13446

記事で放置したままで申し訳ありませんでした



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