Я пытаюсь преобразовать экспоненциальное строковое значение в десятичное и сравнить его с другим десятичным значением в функции Select
, имеющей данные.
var dt = new DataTable();
dt.Columns.Add("Salary", typeof(string));
dt.Rows.Add("8.83567E-05");
string userInput = "8.83567E-05";
var matchedRows = dt.Select("Convert([Salary],'System.Decimal') = " + Decimal.Parse(userInput, System.Globalization.NumberStyles.Float));
Но я получил следующую ошибку
System.FormatException: 'Входная строка была в неправильном формате.'
Так что послеВ некоторых исследованиях я обнаружил, что использование System.Double
будет работать в моем случае
var matchedRows = dt.Select("Convert([Salary],'System.Double') = " + Decimal.Parse(userInput, System.Globalization.NumberStyles.Float));
, и это сработало.
Но я не хочу использовать double
, поскольку он приблизительно сохраняет данные. Мои данные могут содержать до 10 знаков после запятой.
Есть ли способ преобразовать строковое экспоненциальное строковое значение в десятичный тип данных? или безопасно использовать double в моем случае?