1e-9 或 -1e9,哪一个是正确的? [已关闭]

问题描述 投票:0回答:2

我被分配了一些旧代码,当我阅读它时,我注意到它的形式如下:

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
吗?

那么这些值将在

-1000000000
1000000000
之间,对吧?

我不确定

1e-9
的含义是什么?

c++ math floating-point notation exponential
2个回答
87
投票

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

  • 1e-9
    0.000000001
    ;减号适用于指数。
  • -1e9
    -1000000000.0
    ;减号适用于数字 本身。

e
(或
E
)是所谓的指数记数法,它的意思是“乘以10的次方”,所以
1e9
是“一乘十的九次方” ”,而
1e-9
的意思是“一乘十的负九力量”。

在数学科学记数法中,通常用上标表示:1 × 10-9 或 -1 × 109。编程语言采用

e
E
表示法,因为它比上标更容易键入和打印(就这一点而言,现在仍然如此)。我认为这可能是 Fortran 在 20 世纪 50 年代引入的,但我不确定确切的历史。


4
投票

“低”和“高”是指绝对值。数字越小,绝对值越小,数字越大,绝对值越大。负数并不重要,因为您已经了解如何使用它们。浮点数最重要的是它们的变量scale(即指数),因此通常为比例提供下限和上限,而不是值。

© www.soinside.com 2019 - 2024. All rights reserved.