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
--
Regards,
Jake Marx
www.longhead.com
Stuart wrote:
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