返回列表 上一主題 發帖

[發問] 溢位處理

回復 1# caichen3
For i = 3 To k                        
請問 k 為多少?

TOP

回復 1# caichen3
  1. Sub ex()
  2.     Dim a As Single, b As Single, c As Single, d As Double
  3.     Dim kkk As String
  4.     Dim k As Integer
  5.    
  6.     k = 3
  7.     ccc = Chr(67)
  8.     ddd = Chr(68)
  9.     ggg = Chr(71)

  10.     For i = 1 To k
  11.         a = Range(ccc & i).Value
  12.         b = Range(ddd & i).Value
  13.         c = a + (a - b)
  14.         d = c / a
  15.         Range(ggg & i).Value = Format(d, "00.00")
  16.     Next

  17. End Sub
複製代碼

TOP

回復 5# Hsieh
原來真正問題是出在欄位儲存值的精準度的容許範圍。

3)a,b宣告為單精準數,若儲存格數值超出單精準數範圍(它的範圍在負數的時候是從 -3.402823E38 到 -1.401298E-45,而在正數的時候是從 1.401298E-45 到 3.402823E38。)就會造成溢位
a = CSng(Range(ccc & xxx).Value)
b = CSng(Range(ddd & xxx).Value)

謝謝!

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題