Я конвертирую строку типа «41.00027357629127» и использую;
Convert.ToSingle("41.00027357629127");
или
float.Parse("41.00027357629127");
Эти методы возвращают 4.10002732E + 15 .
Когда я конвертирую в float, я хочу «41.00027357629127». Эта строка должна быть такой же ...
Ответы:
Установлен языковой стандарт вашего потока, в котором десятичный знак - «,» вместо «.».
Попробуйте использовать это:
Обратите внимание, однако, что число с плавающей точкой не может содержать такое количество цифр точности. Для этого вам нужно будет использовать double или Decimal.
источник
using System.Globalization;
для доступаCultureInfo
Во- первых, это просто представление о
float
номер , который вы видите в отладчике. Реальное значение приблизительно точно (насколько это возможно).Примечание. Всегда используйте информацию CultureInfo при работе с числами с плавающей запятой вместо строк.
Это всего лишь пример; выберите подходящую культуру для вашего случая.
источник
new System.Globalization.CultureInfo("tr-TR")
Вы можете использовать следующее:
источник
Использовать
Convert.ToDouble("41.00027357629127");
Convert.ToDouble
документацияисточник
Точность числа с плавающей запятой составляет 7 цифр. Если вы хотите сохранить всю партию, вам нужно использовать двойной тип, который содержит 15-16 цифр. Что касается форматирования, посмотрите сообщение о двойниках форматирования . И вам нужно побеспокоиться о десятичных разделителях в C # .
источник
Ты можешь
double.Parse("41.00027357629127");
источник
Вы можете использовать синтаксический анализ с double вместо float, чтобы получить более точное значение.
источник