Re: [VB6 ] 1 - 99.9 / 100≠0.001

看板Visual_Basic作者 (D逃)時間19年前 (2006/06/06 23:58), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/3 (看更多)
想要解這個問題沒那麼複雜, 其實只是變數型態轉換時產生的誤差而已. 加個小動作就可以解決了 Print 1 - CCur(99.9) / 100 用你的電腦跑跑看, 0.001 回來了!! *以上的動作是轉換成 Currency 的資料型態, 資料長度同 Double 有 8 Bytes, 有效範圍從 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 較常用於儲存貨幣等資料. 而 Double 則較常用於數學公式計算. 如果不夠用, 可以試試 CDec 轉成 Decimal 有 14 Bytes, 小數位可以到 28 位, 一樣不會造成計算問題, 需注意 Decimal 必須儲存於 Variant 宣告中. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.80.140.77

06/07 06:54, , 1F
補充: Currency 的有效位數僅有4位
06/07 06:54, 1F

06/10 20:36, , 2F
有點複雜的感覺@@再多查書看看 謝謝解惑:)
06/10 20:36, 2F
文章代碼(AID): #14XQOY4A (Visual_Basic)
文章代碼(AID): #14XQOY4A (Visual_Basic)