Ответ на этот вопрос можно найти здесь.
https://stackoverflow.com/a/19374418/41
отправленный пользователем https://stackoverflow.com/users/2608383/karthik-krishna-baiju
Оригинальное сообщение Код:
string outPut = "0";
if (MyValue.ToString().Split('.').Length == 2)
{
outPut = MyValue.ToString().Split('.')[1].Substring(0, MyValue.ToString().Split('.')[1].Length);
}
Console.WriteLine(outPut);
Модифицированный вашим требованиям:
decimal d = 44.22m;
string outPut = "0";
if (d.ToString().Split('.').Length == 2)
{
outPut = d.ToString().Split('.')[1].Substring(0, d.ToString().Split('.')[1].Length);
}
Console.WriteLine(outPut);
--input samples--
1) 46,0
2) 46,01
3) 46,000001
4) 46,1 5) 46,12
6) 46,123
7) 46,1234
--outputs--
1) 0
2) 01
3) 000001
4) 1
5) 12
6) 123
7) 1234
Было бы хорошо, чтобы использовать конвертер? – nvoigt
Я действительно не хотел усложнять вещи, но если нет доступных StringFormat, я буду использовать конвертер –
. Я не думаю, что вы получите ответ, который не должен использовать математику и нужен только 'String.Format' или' ToString'. Кстати, вопрос будет легче понять, если бы вы использовали заголовок наподобие _ «Как использовать String.Format, чтобы показывать только центы и опускать доллары» _ –