ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Strange problem (https://www.excelbanter.com/excel-programming/278658-strange-problem.html)

Jake Marx[_3_]

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



Stuart[_8_]

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