Есть ли способ указать несколько форматов в C # для десятичной строки, как в VB? - PullRequest
1 голос
/ 21 декабря 2010

Я перевожу некоторый код с VB на C # и наткнулся на это:

Format(seg.R, " 00.00000;-00.00000") // <-- There is a leading space in the first format string

... который печатает ...

 00.00000 //or...
-00.00000

... в зависимости от того, является ли десятичное число положительным или отрицательным. Есть ли простой способ сделать это с помощью функций C # string.Format или myObj.ToString("[format here]")?


РЕДАКТИРОВАТЬ: Обратите внимание на дополнительный пробел в строке формата. Это делает строки одинаковой длины, добавляя начальный пробел, когда нет отрицательного знака.

Ответы [ 2 ]

1 голос
/ 21 декабря 2010

Да:

http://blog.stevex.net/string-formatting-in-csharp/

http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

Вот быстрый ответ на вопрос, который вы опубликовали выше:

whateverstring.ToString(" 00.00000;-00.00000");
-29.69 -> "-29.69000"
48 -> " 48.00000" <-notice space padding the front.

ПолуСтрока форматирования, разделенная двоеточиями: «00.00; ##. ##» применяет шаблон 00.00 к положительным и нулевым значениям, а шаблон ##. ## - к отрицательным значениям.

Другими словами, то, что было раньшедля форматирования строки работает без каких-либо настроек: -)

0 голосов
/ 21 декабря 2010

Да, String.Format () будет делать все то же, что и функция формата VB Classic.

http://blogs.msdn.com/b/kathykam/archive/2006/03/29/564426.aspx

...