MOD function results

D

djd

I just need to understand why this is happening.

I have a field where I need to verify that the user entered a value in
increments of 0.5. So I use the formula MOD(field1,0.5). When field1 is
1.5 the result is 0. I have another field where I need to verify that the
user entered a value in increments of 0.2. So my formula is MOD(field2,0.2).
When field2 is 1.2 the result is 0 when the cell is a number but when
defined as general is -1.1102E-16.

I am checking the cells containing the MOD formula in VBA and noticed that
my code for <>0 wasn't working even though the cell showed 0. When I used
Watch I saw the exponential.
 
M

Mike H

Hi,

I'm not sure what you want because you posted this in programming and used
the worksheet syntax for MOD so this is a worksheet answer

format the cell as number to get rid of the -1.1102E-16.

the vba syntax is
x MOD y

Mike
 
R

Rick Rothstein \(MVP - VB\)

The OP must have been talking about the worksheet version of MOD since the
VBA version cannot use non-integer arguments (it will Banker Round any
non-integer arguments before applying the Mod operator). For example...

10.5 Mod 3.5 ==> 2

because 10.5 Banker Rounds to 10 and 3.5 Banker Rounds to 4 so that the
operation becomes...

10 Mod 4

which is 2 whereas on the worksheet, MOD(10.5,3.5) is 0.

Rick
 

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