C # double to decimal precision loss

У меня есть двойной "138630.78380386264" , и я хочу преобразовать его в десятичное, однако когда я это делаю, я делаю это либо путем преобразования, либо с помощью Convert.ToDecimal () и я теряю точность.

Что происходит? И десятичное, и двойное может содержать это число:

enter image description here

double doub = double.Parse("138630.78380386264");
decimal dec = decimal.Parse("138630.78380386264");
string decs = dec.ToString("F17");
string doubse =DoubleConverter.ToExactString(doub);
string doubs = doub.ToString("F17");

decimal decC = (decimal) doub;
string doudeccs = decC.ToString("F17");
decimal decConv = Convert.ToDecimal(doub);
string doudecs = decConv.ToString("F17");

Также: как я могу получить ToString () на double, чтобы распечатать тот же результат, что показывает отладчик? например 138630,78380386264 ?

29
задан Grant Birchmeier 17 August 2017 в 18:28
поделиться