Количество заполнения C# нулями

У меня есть поле amount, которое является десятичным в базе данных. Мне нужно всегда отображать эту сумму с 10 числами слева от десятичного знака и двумя после.

Пример:
Amount = 245.00 должно отображаться как 0000000245.00 Кроме того, сумма может превышать 1000 или 10 000, что должно отображаться как:

0000001245.00 и 0000011245.00

Как я могу отформатировать сумму, чтобы всегда иметь соответствующее количество нулей в левой части десятичной дроби с переменным размером суммы?


person Baxter    schedule 06.03.2012    source источник


Ответы (3)


Вы должны поместить 0 в строку формата. Что-то вроде этого.

myValue.ToString("0000000000.00");

Это всегда даст вам 10 цифр слева от десятичной точки и две справа.

Если вам не нужны две цифры справа... сделайте это.

myValue.ToString("0000000000.##");

Это говорит: «Эй, если у нас есть значение, отобразите его; в противном случае пропустите его.

person scottheckel    schedule 06.03.2012
comment
Это сделает округление. - person Anshul Nigam; 19.02.2016

Это должно помочь... http://www.csharp-examples.net/string-format-int/

Таким образом, вы можете использовать это

string.Format("{0:0000000000.00}", 15.25); // "0000000015.25"

person Simon Woker    schedule 06.03.2012
comment
Я тоже так думал, но перечитал вопрос. Цифры справа от запятой должны различаться и не всегда должны быть ровно двумя. - person Yuck; 06.03.2012
comment
@Yuck Это не то, как я это понимаю I need to always display this amount with 10 numbers on the left of the decimal and two after. ... это не будет работать с числами больше 9999999999, потому что тогда у него будет 11 чисел впереди :) - person Simon Woker; 06.03.2012
comment
Обратите внимание, что ToString более эффективен, чем string.Format. Другими словами, если предположить, что d является десятичной переменной, d.ToString("0000000000.00") более эффективна, чем string.Format("{0:0000000000.00}", d). - person phoog; 06.03.2012
comment
Тем не менее, если ему не нужны два справа, он просто меняет этот формат. Это жизнеспособный ответ в зависимости от того, чего хочет ОП. - person scottheckel; 06.03.2012

yourDecimalVariable.ToString("0000000000.00") должно помочь.

person sarvesh    schedule 06.03.2012