ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月29日(金) 06:15

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2012年4月25日(水) 17:54 
何時も、お世話に成っています。

一部の演算結果と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

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


宜しくお願いします。


通報する
ページトップ
   
投稿記事Posted: 2012年4月27日(金) 11:06 
オフライン

登録日時: 2006年2月05日(日) 17:10
記事: 215
お住まい: 東京都
演算結果の件は、浮動小数点の演算結果の誤差によるものと思われます。
だから不具合ではないと思いますが。


最後に編集したユーザー たかせ [ 2013年7月16日(火) 16:10 ], 累計 1 回

通報する
ページトップ
 記事の件名:
投稿記事Posted: 2012年9月30日(日) 02:12 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 899
お住まい: 東京都
私も、そこはWhile 10<=valueのほうが良さそうだと思います。

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


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Ahrefs [Bot] & ゲスト[14人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean