Strange problem

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
 
S

Stuart

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top