Формат "E6", о котором вы говорите, - научная запись .Так пишутся литералы с плавающей точкой.См. §9.4.4.2 (Целочисленные литералы) и §9.4.4.3 (Действительные литералы) стандарта C #: ISO / IEC 23270 (Информационные технологии - Языки программирования - C #).ИСО / МЭК 23270 и его брат, ИСО / МЭК 23271, описывающий CLR, свободно доступны в виде файлов PDF от ИСО по адресу
http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html
Но все, что вам нужно сделать, это привестиВаши значения decimal
равны double
new GeoPoint( (double) latitude , (double) longitude ) ;
Или, альтернативно, используйте статический метод Decimal.ToDouble()
:
new GeoPoint( Decimal.ToDouble(latitude) , Decimal.ToDouble(longitude) ) ;
Не имеет значения, что вы делаете.То же самое происходит под одеялом.
Однако вы должны заметить, что при преобразовании в удвоение вы можете потерять точность.decimal
диапазон сделок (величина) для точности;double
и float
точность торговли для диапазона (величины).Кроме того, преобразование из double
в decimal
выдает OverflowException
, если конвертируемое значение не может быть представлено как decimal
.
. Любое из следующих значений выдает OverflowException
:
Double.NaN
Double.PositiveInfinity
Double.NegativeInfinity
- значения меньше
Decimal.MinValue
- значения большечем
Decimal.MaxValue