ab.com コミュニティ https://www.activebasic.com/forum/ |
|
一部の演算結果とStr$()関数に不具合(?) https://www.activebasic.com/forum/viewtopic.php?t=2953 |
ページ 1 / 1 |
作成者: | ベーやん [ 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ではそのあたりの処理もきちんと見直します。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |