ab.com コミュニティ https://www.activebasic.com/forum/ |
|
リテラル値同士の演算結果 https://www.activebasic.com/forum/viewtopic.php?t=1256 |
ページ 1 / 1 |
作成者: | KICO [ 2006年7月22日(土) 18:58 ] |
記事の件名: | リテラル値同士の演算結果 |
何時も、お世話に成っています。 リテラル値同士の乗算演算した結果がおかしいです。(Ver 4.24.00以降) 全て試した訳ではありませんが、最初に気が付いたのがDouble型で他にも有るのかと 試してみるとLong型,DWord型もでした。 コード: Dim a As Double Dim b As DWord Dim c As Long 'OK a=328*100 b=328*100 c=328*100 Debug 'NG a=100*328 b=100*328 c=100*328 Debug題名に「リテラル値同士・・」と書きましたが、その限りで無いみたいですので、その方も確認お願いします。 宜しくお願いします。 |
作成者: | tak [ 2006年7月22日(土) 19:42 ] |
記事の件名: | |
無符号数値が誤って符号拡張されていますね。 明示的に型キャストすれば問題を回避できます。 コード: a=100*328 As Double b=100*328 As DWord c=100*328 As Long面倒くさいけどね。 |
作成者: | 山本 [ 2006年7月22日(土) 20:36 ] |
記事の件名: | |
ご報告ありがとうございます。 こちらでも現象が確認できました。次回のバージョンアップで修正させていただきます。 |
作成者: | MUGI [ 2006年7月25日(火) 14:39 ] |
記事の件名: | AB424サンプルのCDPlayerのTrackBarの設定について |
同じ現象かと思われましたので、ぶら下がらせていただきます。 プログラミング質問板のほうで、質問立てているのですが、 サンプルのCDPlayerの中の、Sub MainWnd_PlayButton_Clickのなかで、 nMax = (MCI_MSF_MINUTE(msp.dwReturn) * 60 + MCI_MSF_SECOND(msp.dwReturn)) * 10 SendMessage(hTrackBar,TBM_SETRANGE,0,MAKELONG(0,nMax)) で設定していますが、MessageBoxを使って調べてみると、nMaxの値が変な値になっています。 nMaxを使わず、 SendMessage(hTrackBar,TBM_SETRANGE,0,MAKELONG(0,(MCI_MSF_MINUTE(msp.dwReturn) * 60 + MCI_MSF_SECOND(msp.dwReturn)) * 10)) とすると正常に動きます。 nMax = (60 * MCI_MSF_MINUTE(msp.dwReturn) + MCI_MSF_SECOND(msp.dwReturn)) * 10とすると、問題なく動きますと教えていただきました。 しかし、nMaxを使わない場合と、MessageBoxで(MCI_MSF_MINUTE(msp.dwReturn) * 60 + MCI_MSF_SECOND(msp.dwReturn)) * 10とした場合は、正常な値となります。 このスレの現象と同じものでしょうか? よろしくお願いします。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |