В чем разница между нотациями D и E при использовании в C ++? - PullRequest
0 голосов
/ 15 февраля 2019

В приведенной ссылке: Чтение научной нотации D + указано, что D и E (или e) схожи.Однако, когда я запускаю следующий код в C ++:

long double x;
cin >> x;
printf("%.30Lf",x);

и даю ввод 123D+01, вывод будет 123.000000000000000000000000000000, а когда я даю ввод 123D-01, вывод все равно 123.000000000000000000000000000000,Тем не менее, для входа 123E+01, выход 1230.000000000000000000000000000000, а для входа 123E-01, выход 12.300000000000000000173472347598.

В октаве >> str2num("123D+01") дает выход ans = 1230
в то время как для >> str2num("123D-01") вывод равен ans = 12.300.

Пожалуйста, объясните!

1 Ответ

0 голосов
/ 15 февраля 2019

Нет обозначения D в C ++.В вашем примере у символа 'D' число больше не анализируется.Итак, оба ваших случая приводят к 123. Нотация E работает как обычно.

Нотация D приходит из Фортрана, где она означает константу DOUBLE PRECISION.И поскольку Фортран обычно используется для математики, октава поддерживает эту запись.

...