Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

返回列表 發(fā)新帖
查看: 1807|回復(fù): 2
打印 上一主題 下一主題

[Access本身] 關(guān)于VBA中浮點(diǎn)數(shù)減法的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2011-7-16 20:30:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
   具體代碼如下,怎么樣才能使得MsgBox輸出的結(jié)果是0.06呢?

     Dim dblA As Double, dblB As Double
   
    dblA = 0.68
    dblB = 0.62
   
    MsgBox dblA - dblB

   請(qǐng)各位大俠指教!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2011-7-17 02:32:42 | 只看該作者
把Double(雙精度)改成Single(單精度)。
3#
 樓主| 發(fā)表于 2011-7-26 23:22:09 | 只看該作者
雖然這道題將數(shù)據(jù)類(lèi)型改成Single(單精度)后,運(yùn)行結(jié)果正確。
但是換了其它小數(shù),還是會(huì)有問(wèn)題。
例如:
    Dim sngA As Single, sngB As Single
    sngA = 0.0068
    sngB = 0.0062
    MsgBox sngA - sngB

今天在網(wǎng)上找到了徹底的解決方法:
  Dim sngA As Single, sngB As Single
    sngA = 0.0068
    sngB = 0.0062
    MsgBox CDec(sngA) - sngB

將類(lèi)型轉(zhuǎn)換成Decimal后再計(jì)算就可以了。
Decimal數(shù)據(jù)類(lèi)型詳細(xì)情況請(qǐng)看MSDN
Decimal只能用CDec()強(qiáng)行指定為Decimal類(lèi)型。
Decimal速度沒(méi)有整型快(那是當(dāng)然的);如果對(duì)于精度沒(méi)有過(guò)度要求,還是Single/Double吧。

謝謝版主的熱心幫助了。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 10:31 , Processed in 0.144834 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表