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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0131
ふくなが変数の積は…?4解決


ふくなが

リンク

2009/1/31(Sat) 13:05:04|NO.23155

配列変数bの積を求めたいのですが、

randomize a=rnd(4)+2 dim b,a repeat a b(cnt)=rnd(5)*100 mes "["+cnt+"]="+b(cnt) loop c=b(0) repeat a-1 c=c*b(cnt+1) loop d=a-1 mes "bの配列(0~"+d+")をすべて掛けると"+c+"になります。"
以上のプログラムを実行すると、たまに負の数が結果として返されます。
改善したいのですが、どのようにすればよいでしょうか?



この記事に返信する


k

リンク

2009/1/31(Sat) 13:25:13|NO.23156

デフォの 変数は int 形式なので
-2,147,483,648 (-2^31) 〜 2,147,483,647 (2^31-1) です。

double を使いましょう



ふくなが

リンク

2009/1/31(Sat) 15:06:06|NO.23157

ご指摘ありがとうございます。
Doubleについて多少調べたのですが、
有効範囲が16桁までだということでした。
積の結果が16桁を超える場合は、どのようになるのでしょうか?



リンク

2009/1/31(Sat) 16:47:08|NO.23160

詳しくは以下参照
http://hspdev-wiki.net/?%C9%E2%C6%B0%BE%AE%BF%F4%C5%C0#q96515cc
HSPのdouble型は64bitの倍長精度浮動小数点みたいですね

>有効範囲が16桁までだということでした。
有効範囲 は 仮数部ということですね
>積の結果が16桁を超える場合は、どのようになるのでしょうか?
指数が増えます(^^;



ふくなが

リンク

2009/2/2(Mon) 17:08:19|NO.23190

なるほど。
私の調べ方が甘かった部分があったみたいですね…
もう少しサイトを眺めてみることにします。
ありがとうございました。



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