ab.com コミュニティ
https://www.activebasic.com/forum/

一部の演算結果とStr$()関数に不具合(?)
https://www.activebasic.com/forum/viewtopic.php?t=2953
ページ 11

作成者:  ベーやん [ 2012年4月25日(水) 17:54 ]
記事の件名:  一部の演算結果とStr$()関数に不具合(?)

何時も、お世話に成っています。

一部の演算結果とStr$()関数に不具合(?)

Dim t As Double

t=999999999999994/10
OutputDebugString("999999999999994/10 = "+Str$(t)+Chr$(10))
OutputDebugString("999999999999994/10 = "+Str$(999999999999994/10)+Chr$(10))

OutputDebugString("999999999999999 : "+Str$(999999999999999)+Chr$(10))

[結果]
999999999999994/10 = 99999999999999.5
999999999999994/10 = 99999999999999.5

999999999999999 : 1.00000000000000e+015

後者のStr$()関数ですが、function.shp の _ecvt()中の 「正規化」の所で

While 9.99999999999999<=value '10<=value
value=value/10
dec=dec+1
Wend

While 10<=value '10<=value
value=value/10
dec=dec+1
Wend

にすれば

OutputDebugString("999999999999999 : "+Str$(999999999999999)+Chr$(10))

[結果]
999999999999999 : 999999999999999

と表示しますが、ダメでしょうか?


宜しくお願いします。

作成者:  たかせ [ 2012年4月27日(金) 11:06 ]
記事の件名:  Re: 一部の演算結果とStr$()関数に不具合(?)

演算結果の件は、浮動小数点の演算結果の誤差によるものと思われます。
だから不具合ではないと思いますが。

作成者:  イグトランス [ 2012年9月30日(日) 02:12 ]
記事の件名: 

私も、そこはWhile 10<=valueのほうが良さそうだと思います。

#いずれにせよ、AB5ではそのあたりの処理もきちんと見直します。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/