C# Padding Amount с нули

Имам поле 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