Форматирование двойного с десятичными знаками C # - PullRequest
0 голосов
/ 02 марта 2012

Можно ли отформатировать double, чтобы он не изменял текст с 2140.76 по 214076, а вместо этого оставил 2140.76?

Я не могу использовать ',' для десятичных чисел, поскольку весь текстовый файл, который я читаю, - это числа, использующие '.' для разделения десятичных знаков, 10000 записей, каждый день, так что ...

EDIT:

double natMB = 0;
boolean check = double.TryParse(splitline[8], NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out natMB);
if (check == false)
{
   natMB = 0;
}
else
{
   natMB = natMB * 1024;
}

double intMB = 0;
boolean check2 = double.TryParse(splitline[9], NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out intMB);
if (check2==false)
{
   intMB=0;
}
else
{
   intMB = intMB * 1024;
}

Значение 0 необходимо, поскольку мне нужно ввести эти значения в инструкции SQL, и они должны отображаться как 0, а не как ноль.

Ответы [ 4 ]

1 голос
/ 02 марта 2012

Ваш вопрос не ясен, хотите ли вы разобрать двойное число из строки с точечным десятичным разделителем?

Если да, попробуйте с этим:

double.Parse("2140.76", CultureInfo.InvariantCulture)
1 голос
/ 02 марта 2012

Вы можете использовать инвариантную культуру для форматирования числа с десятичным периодом, независимо от ваших локальных настроек культуры:

string formatted = someDouble.ToString(CultureInfo.InvariantCulture);
0 голосов
/ 02 марта 2012

Можно ли отформатировать двойной код, чтобы он не изменял текст с 2140.76 по 214076, а вместо этого разрешил бы ему 2140.76?

Да.Позвольте мне играть в невежестве - я понятия не имею, как вы можете даже спросить об этом, и у проблемы есть широкие методы форматирования.

Я не могу использовать ',' для десятичных чисел, так как всетекстовый файл, который я читаю, представляют собой числа, использующие «.»для разделения десятичных чисел, 10000 записей, каждый день, так что ...

Таким образом, проблема, вероятно, заключается в том, что у вас есть проблема с культурой и невежественный разработчик с другой стороны.Во избежание этого всегда игнорируется, потому что файлы с обменом всегда должны быть отформатированы на английском языке.

В любом случае, в основном: * Измените информацию о своей культуре в теме на английский или * Используйте информацию о культуре на английском языке для разбора и генерации текста.

Прочитайте документацию по используемым вами методам - ​​есть несколько вариантов, позволяющих настроить форматирование.

0 голосов
/ 02 марта 2012

Начните читать здесь:
http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx

По сути, вы создаете NumberFormatInfo, который можно настроить для использования с String.Format для использования любого формата, который вы хотите.

...