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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
0406
通りすがりconst doubleで0.000000001が0になる4解決


通りすがり

リンク

2023/4/6(Thu) 22:49:23|NO.99261

下記コードを実行するとmes a*1000000000.0が1.0と表示されてほしいところが0と表示されます。


#const double a 0.000000001 mes a*1000000000.0 b=0.000000001 mes b*1000000000.0

当然bのほうは1.0と表示されます。

0.000000001ではなく0.000001だとうまくいくので桁数の問題だと思うのですが、既知の不具合でしょうか。



この記事に返信する


通りすがり

リンク

2023/4/6(Thu) 22:51:29|NO.99262

バージョンはHSP ver3.6です



zrs90(5さい)

リンク

2023/4/7(Fri) 08:31:57|NO.99264

3.4β4p のhistory.txt 内をテキストエディタの
検索で見た所、3.7β1 でこの件と思われる修正が
入っているようです

>#constで定義されたdouble型実数値の有効桁数が
>少なかった不具合を修正

2進数の小数点演算誤差の場合もあるので
何とも言えないのですが...



zrs90(5さい)

リンク

2023/4/7(Fri) 15:53:58|NO.99266

●#99264の追記

一応、下記のスクリプトを使って
3.6 と、3.7β4p で表示して見ました

3.7β4p では、ちゃんと定数定義(※書式指定有)
した値が表示され、最後の計算値も1.00000
が表示されました。
(※3.6 の場合、strf を使って表示すると
0.000...以下略 つまり、0 になっています)


iPhone から投稿してますので、タグ等が
上手く入ってなかったらすみません


#const double a 0.000000001 mes a mes strf("%3.12f", a) //書式指定パラメータはstrf 関数参照 mes a*1000000000.0



通りすがり

リンク

2023/4/7(Fri) 16:20:49|NO.99267

ありがとうございます。
3.7β4pで修正されていたのを知りませんでした。
お手数おかけしました。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.99261への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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