Преобразование строки со многими ведущими нулями в десятичную - PullRequest
3 голосов
/ 07 мая 2020

Как преобразовать строку, которая выглядит так:

0005.47

в десятичное значение 5.47.

Это значение хранится в newStringArray[1], поэтому я сделал это: Convert.ToDecimal(newStringArray[1])

Но в результате я получил вот такое значение: 547

Какой здесь смысл?

1 Ответ

6 голосов
/ 07 мая 2020

Ваша настройка глобализации предполагает, что точка является не десятичным разделителем, а разделителем тысяч.

Вам необходимо передать информацию об этом в Convert.ToDecimal. Это можно сделать, передав свойство CultureInfo.InvariantCulture , чтобы преобразователь использовал правильный десятичный символ при преобразовании.

string test = "0005.47";
decimal value = Convert.ToDecimal(test, CultureInfo.InvariantCulture);
...