Вы были очень близки с вашей первой формой - но вам просто нужно было цифру после «.» Или удалить «.» полностью:
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;
... но лично я бы включил суффикс для удобства чтения.