Strange problem

  • Thread starter Thread starter Jake Marx
  • Start date Start date
J

Jake Marx

Hi Stuart,

You're running into issues caused by floating point calculations (from the
multiplication operations). To avoid issues, you could try something like
this:

Sub GreaterThan2DecPlaces()
Dim rng As Range
Dim sNum As String

For Each rng In Selection.Cells
If Abs(rng.Value - Round(rng.Value, 2)) Then
Debug.Print rng.Address
End If
Next rng
End Sub
 
I have used the following block of code to try and detect any number that is
more than two decimal places in length, unfortunately I am getting strange
results, occasionally it is throwing out numbers that are correct. the
differance being a very small amount such as 1.42145*10^-14

Why is it doing this?....and is there a more reliable way of detecting
numbers over two decimal places in length?


For Each num In Selection
If Int(num * 100) - (num * 100) <> 0 Then
MsgBox "More then two decimal places....."
MsgBox Int(num * 100) - (num * 100)
End If
Next num
 
Back
Top