Как мне отформатировать число, хранящееся в строке? - PullRequest
0 голосов
/ 03 апреля 2009

Если у меня есть числа в виде текстовой строки без десятичных разрядов, как я могу преобразовать их в 2 десятичных разряда, чтобы 12345 преобразовывалось в 123,45? Строка может быть любой длины больше 1.

Ответы [ 5 ]

1 голос
/ 03 апреля 2009

Если вы хотите получить результат в виде строки, вы можете просто использовать строковые операции (примеры в C #):

value.Substring(0, value.Length-2) + "." + value.Substring(value.Length-2)

Если вы хотите получить результат в виде числа, сначала проанализируйте значение, а затем разделите на 100:

double.Parse(value) / 100.0
1 голос
/ 03 апреля 2009

Просто разделите его на 100,0.

x = int(x)
x /= 100.0
1 голос
/ 03 апреля 2009

Если вы уверены, что он числовой и не хотите перепроверять, тогда вы можете избежать преобразований:

if (stringVal.Length == 2)
{
    stringVal = "0." + stringVal;
}
else
{
    stringVal = stringVal.Insert(x.Length - 2, ".");
}

Предполагается, что вам нужен начальный ноль, если он состоит из 2 цифр.

1 голос
/ 03 апреля 2009

Преобразуйте его в десятичный тип, а затем разделите на 100.

string stringVal = "12345";

decimal val = decimal.Parse( stringVal ) / 100M;

double val = double.Parse( stringVal ) / 100.0;

Преобразуйте его обратно в строку, используя

string newVal = string.Format( "{0:N}", val );
0 голосов
/ 03 апреля 2009

десятичная строка = 12345;
(Ул / 100) .ToString ( "F");

...