[Mono-devel-list] Bug? in (float) ToString

yoros at wanadoo.es yoros at wanadoo.es
Sun May 4 17:50:14 EDT 2003


On Sun, May 04, 2003 at 03:59:08PM -0500, Burton M. Strauss III wrote:
> Don't own a copy of Microsoft's product - all I use is mono...
> 
> The test you asked about,
> 
> Console.WriteLine(2.00.ToString("F2"));
>                                      ^ added that...
> 
> Direct:
> 2
> 
> -----Burton
> 
> 
> -----Original Message-----
> From: yoros at wanadoo.es [mailto:yoros at wanadoo.es]
> Sent: Sunday, May 04, 2003 3:24 PM
> To: Burton M. Strauss III
> Cc: mono-devel-list at lists.ximian.com
> Subject: Re: [Mono-devel-list] Bug? in (float) ToString
> 
> 
> On Sun, May 04, 2003 at 10:19:24AM -0500, Burton M. Strauss III wrote:
> > The results of ToString() (explicit or implicit) on double values isn't
> what
> > I would expect.  Mono seems to be ignoring the format specifier and using
> > "G":
> >
> > using System;
> > public class test {
> >         public static void Main() {
> > // Expected values per
> > //
> >
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/htm
> > l/cpconstandardnumericformatstrings.asp
> > // F or f Fixed-point The number is converted to a string of the form
> > "-ddd.ddd..." where
> > //        each 'd' indicates a digit (0-9). The string starts with a minus
> > sign if the
> > //        number is negative. The precision specifier indicates the
> desired
> > number of
> > //        decimal places. If the precision specifier is omitted, the
> default
> > numeric
> > //        precision given by the NumberFormatInfo is used.
> >                 Console.WriteLine("F2:");
> >                 Console.WriteLine("Expected 2.00: {0:F2}", 2.0);
> >                 Console.WriteLine("Expected 2.00: {0:F2}",
> > 2.0.ToString("#0.00"));
> >                 Console.WriteLine("Expected 2.01: {0:F2}", 2.01);
> >                 Console.WriteLine("Expected 2.02: {0:F2}", 2.015);
> >                 Console.WriteLine("#0.00:");
> >                 Console.WriteLine("Expected 2.00: {0:#0.00}", 2.0);
> >                 Console.WriteLine("Expected 2.01: {0:#0.00}", 2.01);
> >                 Console.WriteLine("Expected 2.02: {0:#0.00}", 2.015);
> >                 Console.WriteLine("Explicit:");
> >                 Console.WriteLine("Expected 2.00: {0:F2}",
> > 2.0.ToString("#0.00"));
> >         }
> > }
> >
> > F2:
> > Expected 2.00: 2
> > Expected 2.00: 2
> > Expected 2.01: 2.01
> > Expected 2.02: 2.015
> > #0.00:
> > Expected 2.00: 2
> > Expected 2.01: 2.01
> > Expected 2.02: 2.015
> > Explicit:
> > Expected 2.00: 2
> >
> >
> > Or, maybe I'm crazy.
> 
> That bug is not in float formatter (I think so). Try to use:
> 
>     Console.WriteLine(2.00.ToString("F2");
> 
> The bug may be in String.Format that should call X.ToString("F2") when
> {0:F2} is in the format string.
> 
> Please, test it in MS.NET and file a bug in bugzilla.ximian.com (corlib)
> so we have enough information to fix it.
> 
> Regards,
> 
>     Pedro
> 
> --
> Pedro Martínez Juliá
> \  yoros at terra.es
> )|    yoros at wanadoo.es
> /        http://yoros.cjb.net
> Socio HispaLinux #311
> Usuario Linux #275438 - http://counter.li.org
> GnuPG public information:  pub  1024D/74F1D3AC
> Key fingerprint = 8431 7B47 D2B4 5A46 5F8E  534F 588B E285 74F1 D3AC
> 

I have CVS version. A moment, I will try:

    Console.WriteLine("{0:F2}", 2.00);

I get 2.00, that's right.

Take a look at CVS version, please. You must test CVS before file a bug.

Regards,

    Pedro

-- 
Pedro Martínez Juliá
\  yoros at terra.es
)|    yoros at wanadoo.es
/        http://yoros.cjb.net
Socio HispaLinux #311
Usuario Linux #275438 - http://counter.li.org
GnuPG public information:  pub  1024D/74F1D3AC
Key fingerprint = 8431 7B47 D2B4 5A46 5F8E  534F 588B E285 74F1 D3AC



More information about the Mono-devel-list mailing list