В C#. У меня есть двойной (который я извлек из базы данных), который имеет 20-значную точность. В Visual Studio (с использованием QuickWatch) я могу видеть значение double = 0.00034101243963859839.C# Преобразование 20-значный прецизионный двойной в строку и обратно
Я хочу отобразить это значение в текстовом поле, а затем пусть это будет одно и то же значение, когда я выберу его и преобразую обратно в двойной. Но я всегда проигрываю последние две цифры
Я пробовал следующее:
double d = 0.00034101243963859839;
string s = d.ToString();
string s2 = d.ToString("F20");
string s3 = d.ToString("0.00000000000000000000"); -- 20 0's
string s4 = (d*100d).ToString();
В этих случаях:
s = 0.000341012439638598 s2 = 0.00034101243963859800 s3 = 0.00034101243963859800 s4 = 0.0341012439638598
Я хочу, чтобы иметь возможность сделать следующее:
double d = 0.00034101243963859839;
string s = d.ToString();
//...
double d2 = double.Parse(s);
if(d == d2)
{
//-- Success
}
Есть ли способ сохранить эти последние две цифры точности?
Perfect. Спасибо! – 2009-03-04 17:20:22
Вы помогли мне здесь http://stackoverflow.com/q/18553687/114029. Благодаря! –
«Как ни в стороне, я подозреваю, что невозможно сохранить эти последние две цифры». - Но как Visual Studio может «видеть» эти две цифры? –