![]() |
Strange problem
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 |
Strange problem
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 |
All times are GMT +1. The time now is 09:33 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com