C # - Формат поплавка БЕЗ хвостовых нулей - PullRequest
0 голосов
/ 12 декабря 2011

Возможно ли в C # отформатировать

4.52 число с плавающей точкой в ​​4.52 строку

и

4.520 число с плавающей точкой в ​​4.52 строку,то есть опуская хвостовые нули?

РЕДАКТИРОВАТЬ: Я думаю, что я не акцентировал реальную проблему.Мне нужен ОДИН шаблон, который соответствует ОБА из приведенных выше примеров!

Ответы [ 4 ]

4 голосов
/ 12 декабря 2011

Если вы хотите опустить любой трейлинг 0 от вашего значения, это должно дать вам то, что вы хотите:

ToString("0.####")

В противном случае вы можете сделать:

ToString("0.00##")
3 голосов
/ 12 декабря 2011

См. этот веб-сайт для примеров.

* 1005 т.е. *

String.Format("{0:0.00}", 4.520);      // "4.52"
2 голосов
/ 12 декабря 2011

На самом деле вам не нужен шаблон. .NET всегда опускает хвостовые нули чисел с плавающей запятой, если не указано иное.

Таким образом, Console.WriteLine(4.520) выдаст 4.52, как Console.WriteLine(4.52) или Console.WriteLine(4.520000000000), а Console.WriteLine(4.5) выдаст 4.5.

В приведенном выше примере метод System.Console.WriteLine внутренне вызовет ToString() (без шаблонов) для вашего числа с плавающей запятой.

Кроме того, если вы ищете что-то более конкретное, вы можете взглянуть на

http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.71).aspx

для некоторых других строк числового формата.

1 голос
/ 12 декабря 2011

Все это приводит к «4,52»:

string formatted = 4.52.ToString();
string formatted = 4.520.ToString();

Поскольку это было слишком просто, я задаюсь вопросом, может быть, ваш float действительно является строкой:

string formatted = "4.52".Trim('0');
string formatted = "4.520".Trim('0');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...