[Mono-bugs] [Bug 576341] New: Modulus on Decimal values does not work as expected

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Feb 2 19:29:49 EST 2010


http://bugzilla.novell.com/show_bug.cgi?id=576341

http://bugzilla.novell.com/show_bug.cgi?id=576341#c0


           Summary: Modulus on Decimal values does not work as expected
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.6.x
          Platform: PC
        OS/Version: Windows 7
            Status: NEW
          Severity: Minor
          Priority: P5 - None
         Component: JIT
        AssignedTo: lupus at novell.com
        ReportedBy: aChrisSmith at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Third Party Developer/Partner
           Blocker: No


Description of Problem:

The modulus operator (%) doesn't appear to work as expected on decimal values.
(Or at least match C# on the Microsoft .NET implementation.)

Steps to reproduce the problem:
1. Compile the attached source file.
2. Run it.


Actual Results:

20.0M % 10.0M = 0.0
20.0M % 10.00M = 10.00 (should be 0.0)

This likely has to do with the semantic difference between 0.0 and 0.00 to the
Mono runtime. (There shouldn't be one.)

Expected Results:

Matches C# on Windows. (20.0M % 10.0M = 0.0)

How often does this happen? 

Every time.

Additional Information:

Here is a console session illustrating the problem:

-----------------------

D:\FSharp\Oct 2009 CTP\bin>type ModDecimals.cs
using System;
namespace Repro
{
    class Repro
    {
        static void Main()
        {
            decimal a = 20.0M;
            decimal b = 10.0M;
            decimal c = 10.00M; // Note second 0

            Console.WriteLine("20.0M % 10.0M = {0}", (a % b));
            Console.WriteLine("20.0M % 10.00M = {0}", (a % c));
        }
    }
}
D:\FSharp\Oct 2009 CTP\bin>C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.
 ModDecimals.cs
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.4927
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.


D:\FSharp\Oct 2009 CTP\bin>ModDecimals.cs

D:\FSharp\Oct 2009 CTP\bin>ModDecimals.exe
20.0M % 10.0M = 0.0
20.0M % 10.00M = 0.00

D:\FSharp\Oct 2009 CTP\bin>mono ModDecimals.exe
20.0M % 10.0M = 0.0
20.0M % 10.00M = 10.00

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list