Я пытаюсь конвертировать и экспоненциальное число 1.11111117E + 9, которое на самом деле является десятизначным числом '1111111111'.Когда я пытаюсь преобразовать это экспоненциальное число, используя метод decimal.TryParse, последние три цифры равны нулю, а число равно ' 111111000 '.Это происходит с любым 10-значным числом.
decimal amount;
decimal.TryParse("1.11111117E+9", NumberStyles.Any, null, out amount);
Это странно, но я не могу понять, в чем здесь проблема, кто-нибудь может сказать мне, что в этом плохого?
Редактировать: Извините за вводящий в заблуждение вопрос.Поскольку Хенрик , упомянутый в его ответе, является именно тем, с чем я сталкиваюсь.
float f = 1111111111;
string s = f.ToString();
decimal amount;
decimal.TryParse(s, NumberStyles.Any, null, out amount);
Это всегда вернет 1111111000?Как мне решить эту проблему, чтобы получить правильное значение?Измените его на Double или Decimal для типа данных с плавающей точкой. Это решение или что-то еще?