Możliwe duplikaty:
Parsuj liczbę z wykładniczej notacji
Czy funkcja Decimal.Parse () obsługuje notację naukową?
Próbuję przekonwertować takie wartości jak 1E-08 na adziesiętny w C #, ponieważ dziesiętne są preferowanym typem danych do obsługi funduszy, ale pojawia się błąd po dziesiętnym.Parse () "Ciąg wejściowy nie był w poprawnym formacie." czy najpierw nie przekształciłby się w pływak, a potem w dziesiętny pokonałby cel?
Odpowiedzi:
3 dla odpowiedzi № 1Możesz spróbować z: -
decimal x = decimal.Parse("1E-08", NumberStyles.Float);
6 dla odpowiedzi nr 2
Tak, konwersja na float faktycznie pokonałaby cel. Dobrą rzeczą jest to, że nie musisz tego robić tutaj!
Możesz użyć przeciążenia do analizy, która przyjmuje specyfikator NumberStyles:
decimal d = decimal.Parse("1E-08",
System.Globalization.NumberStyles.AllowExponent);
Oczywiście, jeśli po prostu określasz dziesiętnie zakodowane znaki, możesz użyć formatu dziesiętnego:
decimal d = 1E-08M;