C # Конвертировать валюту в строку, удалить десятичную точку, но сохранить десятичные дроби, добавить 0, чтобы иметь фиксированную ширину - PullRequest
0 голосов
/ 13 марта 2019

Как я могу конвертировать сумму денег, как это

38.50

, до фиксированной ширины, как это

000003850

Я не хочу добавлять запятые и десятичные знаки, поскольку некоторые предлагаемые ответы объясняют, как это сделать. Я также не хочу удалять десятичные дроби, я хочу удалить только десятичную точку.

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

Вы можете использовать string.Format() с пользовательскими спецификаторами формата. Подробнее здесь .

double dollars = 38.50;   // your value
int temp = (int)(dollars * 100);   // multiplication to get an integer
string result = string.Format("{0:000000000}", temp);

// Output: 000003850
0 голосов
/ 13 марта 2019

Понял это благодаря @ReedCopsey на Как убрать десятичную точку из десятичного числа в c #? .

decimal amount = 38.50m;
int fixed_amount = (int)Math.Truncate(amount * 100);
Console.WriteLine(fixed_amount.ToString("D9"));

ВЫВОД:

000003850
...