В приведенной ссылке: Чтение научной нотации 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
.
Пожалуйста, объясните!