【C#】Sometime double.ToString() returns weird value
Разница между en4 и en5, 0 символ(ов) изменены
Code 1.↵


~~~~~↵
using System;↵

class P↵
{↵
    static void Main()↵
    {↵
        double d = 1.23456;↵
        Console.WriteLine(d);↵
    }↵
}↵
~~~~~↵



Code 2.↵


~~~~~↵
using System;↵
class P↵
{↵
    static void Main()↵
    {↵
        double d = 1.23456;↵
        Console.WriteLine(d);↵
    }↵
}↵
~~~~~↵


Can you find difference between two?↵


Yes,It was JUST line feed. And,these two code lead to a different result.↵



Result 1.`1,23456`↵


Result 2.`1.23456`↵



It seems '.' replaced by ','.↵


The same problem occurs in Mono.↵


I think this probrem is bug,but I highly recommend to use substitute methods like this: ↵


~~~~~↵
static string doubleToString(double d)↵
{↵
    int s = (int)d;↵
    string a = Convert.ToInt32((d - s) * 1000000000).ToString().PadLeft(9, '0');↵
    return $"{s}.{a}";↵
}↵
~~~~~↵


Proof:↵
[submission:33796322]↵
[submission:33796340]

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en6 Английский keymoon 2017-12-30 03:01:27 199
en5 Английский keymoon 2017-12-30 01:02:25 0 (published)
en4 Английский keymoon 2017-12-30 00:58:41 6
en3 Английский keymoon 2017-12-30 00:57:55 12
en2 Английский keymoon 2017-12-30 00:57:30 777
en1 Английский keymoon 2017-12-30 00:35:48 670 Initial revision (saved to drafts)