在C ++中使用D和E表示法有什么区别?

时间:2019-02-15 17:51:13

标签: c++ double precision

在给定的链接中:Reading scientific notation 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 :(得分:0)

C ++中没有D表示法。在您的示例中,在字符'D'处,该数字不再被解析。因此,两个案例的结果均为123。E标记照常工作。

D表示法来自Fortran,它表示DOUBLE PRECISION常数。而且由于Fortran通常用于数学,所以八度支持这种表示法。