Как указать экспоненциальные константы в C #? - PullRequest
1 голос
/ 03 декабря 2010

У меня есть некоторый C-код, который определяет экспоненциальное число как константу.Как мне написать это в C #?

    double TOL = 1.E-8d;
    double TOL2 = 1.E - 8;

Ответы [ 5 ]

7 голосов
/ 03 декабря 2010

Если после десятичной дроби нет чисел, вы не включаете точку. То же, что и в C / C ++ / etc. Итак:

double TOL= 1E-8;
double TOL2 = 1E-8;

Или, может быть, для другого значения:

double TOL = 1.5E-8;

Это в спецификации, раздел 2.4.4.3:

http://msdn.microsoft.com/en-us/library/ms228593.aspx

3 голосов
/ 03 декабря 2010
    double tol = 1.0e8;
    double tol2 = 1.0e-8;
3 голосов
/ 03 декабря 2010

Вы были очень близки с вашей первой формой - но вам просто нужно было цифру после «.» Или удалить «.» полностью:

double TOL = 1.0E-8d;
double TOL = 1E-8d;

См. Раздел 2.4.4.3 спецификации языка C # , где приведены правила, касающиеся этого. Обратите внимание, что вы также можете использовать строчную букву «е», если хотите:

double TOL = 1.0e-8d;
double TOL = 1e-8d;

И double является типом по умолчанию, если вы опускаете суффикс из «реального» литерала, поэтому они также действительны:

double TOL = 1.0e-8;
double TOL = 1e-8;

... но лично я бы включил суффикс для удобства чтения.

2 голосов
/ 03 декабря 2010

Вот как вы делаете это в C #:

double value = -4.42330604244772E-305;

См. Также MSDN в System.Double .

0 голосов
/ 21 июня 2013

Это немного другой пример, а не для экспоненциальных чисел.

double value = 1744056d сообщается как ошибка g ++ в Linux.

double value = 1744056.0d нормально.

...