1e-9或-1e9,哪一个是正确的?

时间:2012-08-26 22:16:26

标签: c++ math floating-point notation exponential

我被分配了一些旧代码,当我阅读它时,我发现它有以下形式:

float low = 1e-9;
float high = 1e9;

float lowB = 1e-9;
float highB = 1e9;

float lowL = 1e-9;
float highL = 1e9;

所以我看到它正在尝试使用e符号定义一些范围,对吗?但是1e-9不应该是-1e9

然后值会介于-10000000001000000000之间,对吗?

我不确定1e-9是什么意思?

2 个答案:

答案 0 :(得分:57)

两者都不比另一个更正确。它们只代表不同的价值观。

1e-90.000000001;减号适用于指数。

-1e9-1000000000.0;减号适用于数字本身。

e(或E)表示“时间10到”,因此1e9是“十倍到九倍的力量”,1e-9意思是“负九次幂的十倍”。在数学科学记数法中,这通常用上标表示:1×10 -9 或-1×10 9 。编程语言采用eE表示法,因为它比上标更容易打字和打印(就此而言仍然如此)。 (我想这可能是由Fortran在20世纪50年代引入的,但我不确定具体的历史。)

答案 1 :(得分:3)

“低”和“高”是指绝对值。低数字的绝对值很小,高数字很大。否定并不重要,因为您已经了解如何使用它们。浮点数的重要性在于它们的变量 scale (即指数),因此习惯上为比例而不是值提供下限和上限。