Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,119
Default Mod Function Returning Long

What am I missing here...

377.25 Mod 25 is returning 2 instead of 2.25. In the watch window the result
of the function is a long. Everything I have read I should be getting a
double.

Sub ModTest()
MsgBox 377.25 Mod 25
End Sub

Jim Thomlinson
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Mod Function Returning Long

Jim,

The answer in in Help

The modulus, or remainder, operator divides number1 by number2 (rounding
floating-point numbers to integers)

Note the bit in brackets. VBA Mod behaves differently to Excel Mod.

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jim Thomlinson" wrote in message
...
What am I missing here...

377.25 Mod 25 is returning 2 instead of 2.25. In the watch window the

result
of the function is a long. Everything I have read I should be getting a
double.

Sub ModTest()
MsgBox 377.25 Mod 25
End Sub

Jim Thomlinson



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 811
Default Mod Function Returning Long

Hi Jim,

Here's an excerpt from the help topic on the VBA Mod function:

------------------------------------------------
The modulus, or remainder, operator divides number1 by number2 (rounding
floating-point numbers to integers) and returns only the remainder as
result. For example, in the following expression, A (result) equals 5.

A = 19 Mod 6.7
------------------------------------------------

--
Rob Bovey, Excel MVP
Application Professionals
http://www.appspro.com/

* Take your Excel development skills to the next level.
* Professional Excel Development
http://www.appspro.com/Books/Books.htm

"Jim Thomlinson" wrote in message
...
What am I missing here...

377.25 Mod 25 is returning 2 instead of 2.25. In the watch window the
result
of the function is a long. Everything I have read I should be getting a
double.

Sub ModTest()
MsgBox 377.25 Mod 25
End Sub

Jim Thomlinson



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default Mod Function Returning Long

Jim,

In Visual Basic 6.0, the MOD operator accepted any numeric expression and the result was always
returned as an integer. I have to assume that the same is true in VBA.

Try using:

MsgBox 377.25 - Int(377.25 / 25) * 25

HTH,
Bernie
MS Excel MVP



"Jim Thomlinson" wrote in message
...
What am I missing here...

377.25 Mod 25 is returning 2 instead of 2.25. In the watch window the result
of the function is a long. Everything I have read I should be getting a
double.

Sub ModTest()
MsgBox 377.25 Mod 25
End Sub

Jim Thomlinson



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,119
Default Mod Function Returning Long

I did not see that anywhere in the help... Must not have looked hard
enough... In MSDN help for VB here is what they say... If number1 or number2
are floating-point values, then division is carried out and the
floating-point remainder is returned. I guess I will have to work around it...
--
HTH...

Jim Thomlinson


"Bob Phillips" wrote:

Jim,

The answer in in Help

The modulus, or remainder, operator divides number1 by number2 (rounding
floating-point numbers to integers)

Note the bit in brackets. VBA Mod behaves differently to Excel Mod.

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jim Thomlinson" wrote in message
...
What am I missing here...

377.25 Mod 25 is returning 2 instead of 2.25. In the watch window the

result
of the function is a long. Everything I have read I should be getting a
double.

Sub ModTest()
MsgBox 377.25 Mod 25
End Sub

Jim Thomlinson






  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default Mod Function Returning Long

Jim,

That is true of VB.NET, but not VBA.

"In Visual Basic .NET, the MOD operator no longer accepts variants, and if either operand is a
floating-point number, the result will be a floating-point number."

HTH,
Bernie
MS Excel MVP


"Jim Thomlinson" wrote in message
...
I did not see that anywhere in the help... Must not have looked hard
enough... In MSDN help for VB here is what they say... If number1 or number2
are floating-point values, then division is carried out and the
floating-point remainder is returned. I guess I will have to work around it...
--
HTH...

Jim Thomlinson


"Bob Phillips" wrote:

Jim,

The answer in in Help

The modulus, or remainder, operator divides number1 by number2 (rounding
floating-point numbers to integers)

Note the bit in brackets. VBA Mod behaves differently to Excel Mod.

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jim Thomlinson" wrote in message
...
What am I missing here...

377.25 Mod 25 is returning 2 instead of 2.25. In the watch window the

result
of the function is a long. Everything I have read I should be getting a
double.

Sub ModTest()
MsgBox 377.25 Mod 25
End Sub

Jim Thomlinson






  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,119
Default Mod Function Returning Long

And you learn something new every day... Thanks guys...
--
HTH...

Jim Thomlinson


"Bernie Deitrick" wrote:

Jim,

In Visual Basic 6.0, the MOD operator accepted any numeric expression and the result was always
returned as an integer. I have to assume that the same is true in VBA.

Try using:

MsgBox 377.25 - Int(377.25 / 25) * 25

HTH,
Bernie
MS Excel MVP



"Jim Thomlinson" wrote in message
...
What am I missing here...

377.25 Mod 25 is returning 2 instead of 2.25. In the watch window the result
of the function is a long. Everything I have read I should be getting a
double.

Sub ModTest()
MsgBox 377.25 Mod 25
End Sub

Jim Thomlinson




  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,119
Default Mod Function Returning Long

I knew I hung out around here for a reason... Answers above and beyond the
call of duty...
--
HTH...

Jim Thomlinson


"Bernie Deitrick" wrote:

Jim,

That is true of VB.NET, but not VBA.

"In Visual Basic .NET, the MOD operator no longer accepts variants, and if either operand is a
floating-point number, the result will be a floating-point number."

HTH,
Bernie
MS Excel MVP


"Jim Thomlinson" wrote in message
...
I did not see that anywhere in the help... Must not have looked hard
enough... In MSDN help for VB here is what they say... If number1 or number2
are floating-point values, then division is carried out and the
floating-point remainder is returned. I guess I will have to work around it...
--
HTH...

Jim Thomlinson


"Bob Phillips" wrote:

Jim,

The answer in in Help

The modulus, or remainder, operator divides number1 by number2 (rounding
floating-point numbers to integers)

Note the bit in brackets. VBA Mod behaves differently to Excel Mod.

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Jim Thomlinson" wrote in message
...
What am I missing here...

377.25 Mod 25 is returning 2 instead of 2.25. In the watch window the
result
of the function is a long. Everything I have read I should be getting a
double.

Sub ModTest()
MsgBox 377.25 Mod 25
End Sub

Jim Thomlinson






Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
http://CannotDeleteFile.net - Cannot Delete File? Try Long Path ToolFilename is too long? Computer Complaining Your Filename Is Too Long? TheLong Path Tool Can Help While most people can go about their businessblissfully unaware of the Windo Max Loger Excel Discussion (Misc queries) 0 June 14th 11 04:30 PM
Long Long Long Nested If Function sed Excel Discussion (Misc queries) 4 December 9th 09 06:44 PM
HELP! with long function spoe Excel Worksheet Functions 4 October 17th 07 09:08 PM
Returning one text value in a long list? news.zen.co.uk Excel Worksheet Functions 5 November 3rd 05 09:28 AM
Problem with VBA returning the contents of a long formula. [email protected] Excel Discussion (Misc queries) 2 February 23rd 05 12:14 AM


All times are GMT +1. The time now is 11:44 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"