Можливі дублікати:
Розбирайте номер з експоненційного позначення
Чи підтримує Decimal.Parse () наукове позначення?
Я намагаюся перетворити такі значення, як 1E-08, на aдесяткове число в C #, тому що десяткові числа є бажаним типом даних для обробки коштів, але я отримую помилку на decimal.Parse () "Рядок вводу не був у правильному форматі." перетворившись у плаваюче спочатку, а потім на десяткове поразку цілі?
Відповіді:
3 для відповіді № 1Можна спробувати: -
decimal x = decimal.Parse("1E-08", NumberStyles.Float);
6 для відповіді № 2
Так, перехід на плавання дійсно переможе цю мету. Добре, що ви не повинні робити цього тут!
Ви можете використовувати перевантаження для розбору, який приймає специфікацію NumberStyles:
decimal d = decimal.Parse("1E-08",
System.Globalization.NumberStyles.AllowExponent);
Звичайно, якщо ви просто вказуєте десяткове значення з жорстким кодом, можна використовувати формат десяткового літералу:
decimal d = 1E-08M;