удвойтесь до преобразования строк

Я использую ниже кода:

string.Format("{0:###,###,###,###,###.00}",12005557590928.143);

преобразовать двойную стоимость, чтобы натянуть.

это дает продукцию как "12,005,557,590,928.10"

если я изменяю его на

string.Format("{0:###,###,###,###,###.##}",12005557590928.143);

Я добираюсь. "12,005,557,590,928.1".

Как я могу получить продукцию как "12005557590928.143"?

1
Вот связь, которая покажет вам, все способы использовать последовательность. Формат csharp-examples.net/string-format-double
добавлено автор MethodMan, источник

5 ответы

Вы видите ошибку точности из-за типа данных, который вы используете для числа. Попытайтесь использовать тип числа фиксированной точки (в этом случае, десятичное число ):

string.Format("{0:###,###,###,###,###.###}", 12005557590928.143m);
3
добавлено
@Rotem - Интересный. MSDN раньше называла его фиксированной точкой. They' в документации ре на самом деле все еще говорится "По сравнению с с плавающей запятой...".
добавлено автор Justin Niessner, источник

Try with .ToString("R")

Console.WriteLine((12005557590928.143).ToString("R"));

Вот a ДЕМОНСТРАЦИОННЫЙ ПРИМЕР.

1
добавлено
Console.Write(string.Format("{0:0.000}", (12005557590928.143m)));
1
добавлено
Вопрос был, "Как я могу получить продукцию как "12005557590928.143"?"...
добавлено автор K Roobroeck, источник
@UthistranS. ' m' обозначает десятичное число. Для получения дополнительной информации у Джона Скита есть очень хороший ответ на различии между плаванием и десятичным числом на stackoverflow stackoverflow.com/questions/618535/…
добавлено автор K Roobroeck, источник
это приводит "12005557590928.143" что относительно запятых?
добавлено автор MethodMan, источник
верный, но взгляд на принятый ответ и я думаю that' s, почему..
добавлено автор MethodMan, источник
Можете вы, пожалуйста, объяснять суффикс ' m' здесь?
добавлено автор Uthistran Selvaraj, источник

Я полагаю, что вы хотите последовательность. Формат (" {0:###,###,###,###,###.000} ", 12005557590928.143); (отметьте дополнительный ноль в конце),

1
добавлено
Я don' t думают, что он хотел ноли в конце.
добавлено автор Jeppe Stig Nielsen, источник
да...........
добавлено автор Uthistran Selvaraj, источник

Можно использовать

(12005557590928.143).ToString("R")

<Сильный> обычай последовательности числового формата никогда не будет показывать больше чем 15 десятичных цифр Система. Дважды . Рассмотрите использование Систему. Десятичное число , если вам нужна большая точность.

Если ваша цель состоит в том, чтобы показать "скрытые" цифры Дважды , используйте стандарт , числовой формат натягивает "R" ("поездка туда и обратно") или "G17" ("общие" 17 цифр).

1
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot