ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月28日(木) 20:52

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




返信する
ユーザー名:
件名:
メッセージ本文:
メッセージを入力してください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - 計算結果がおかしい
作成者 メッセージ
  記事の件名:  計算結果がおかしい  引用付きで返信する
掲示板を見ていたら、今回の問題と同じことが既に書かれていましたね。
ABが放置されて、サイトが重くなって、あんまり見なくなってたんですよねぇ。
失礼しました。
投稿記事 Posted: 2010年5月08日(土) 05:54
  記事の件名:  計算結果がおかしい  引用付きで返信する
色々実験してわかったのですが
計算結果が元の型の範囲より大きくなるととおかしなことになるようです。

st.wHour はword型で0~65535
(18 *3600) + (27 *60) + 30=66450
65535を超えているのでその分引かれて914になってしまう。

回避法はボンさんが書かれているとおりキャストすればいいようです。

う~ん、こんな基本的なところにバグがあるとは・・・。
今まで書いてきたコードのすべてをチェックしないと・・・頭が痛くなってきた・・・。
Ver.4.13に戻す方が早いかも・・・他の皆さんはどうしてるんだろうか・・・。
投稿記事 Posted: 2010年5月08日(土) 05:41
  記事の件名:   引用付きで返信する
c = (st.wHour as long *3600) + (st.wMinute *60)
これで解決!
投稿記事 Posted: 2010年5月07日(金) 06:52
  記事の件名:  計算結果がおかしい  引用付きで返信する
なんてことはない時間を秒に直すだけの計算なのですが
コード:
	Dim st As SYSTEMTIME
	Dim b As Long, c As Long, e As Long

	st.wYear=2010
	st.wMonth=5
	st.wDay=6
	st.wHour=16
	st.wMinute=37
	st.wSecond=19

	b = (st.wHour *3600) + (st.wMinute *60) + st.wSecond


	st.wYear=2010
	st.wMonth=5
	st.wDay=6
	st.wHour=18
	st.wMinute=27
	st.wSecond=30


	c = (st.wHour *3600) + (st.wMinute *60) + st.wSecond


	e = st.wHour *3600
	e = e + (st.wMinute *60) + st.wSecond
cの結果が変になります
bは正しいので特定の数値のみ結果が変になるようです
eの様に分けると結果が正しくなります

AB 4.24
Windows XP HOME SP3


まぁ、ABの更新が止まっているので
こんな事を書いてもほとんど意味がないと思いますが
せめてAB4.24のバグ修正版だけでもでないかなぁと願いつつ。

ABはこれからどうなっていくんでしょう?
作者様からの何らかの発表がほしいです。
投稿記事 Posted: 2010年5月07日(金) 05:44

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


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