Страницы

Поиск по вопросам

воскресенье, 12 мая 2019 г.

C# Double.Parse вопрос

Есть строка "1.260", с помощью Double.Parse("1.260") получается число double 1.26.
Как сделать так, чтобы после парсинга 0 на конце остался, и мы получили переменную double a = 1.260?


Ответ

Значение 1.260 хранится в памяти как
00111111 11110100 00101000 11110101 11000010 10001111 01011100 00101001
0 на конце существует только в десятичном строковом представлении числа. Собственно, его вы и видите в отладчике. Его же вы видите при выводе, например, на консоль:
Console.WriteLine(1.26); // 1.26
если вам нужно получить ровно 3 символа после точки в строковом представлении - вы должны явно указать это при преобразовании числа обратно в строку:
string stringRepresentation = 1.26.ToString("0.000"); // 1.26 -> "1.260" Console.WriteLine(stringRepresentation);
или
Console.WriteLine("{0:0.000}", 1.26); // 1.260
подробно особенности форматирования чисел расписаны в MSDN, в статье Строки настраиваемых числовых форматов

Комментариев нет:

Отправить комментарий