14

是什么E+3?这里到底发生了什么?我们可以在其他数据类型中使用这种方法,还是只能在浮点中使用它?

static void Main(string[] args)
{
    double w = 1.7E+3;
    Console.WriteLine(w);
}

输出:1700

4

4 回答 4

19

E 符号

大多数计算器和许多计算机程序都以科学计数法显示非常大和非常小的结果。因为像 10 7这样的上标指数不能总是方便地显示,所以字母 E 或 e 通常用于表示乘以 10 的次方(可以写为“x 10 b ”),然后是指数的值. 请注意,在这种用法中,字符 e 与数学常数e或指数函数e x无关(与大写 E 不太可能混淆);尽管它代表指数,但该符号通常被称为(科学)E 符号或(科学)e 符号,而不是(科学)指数符号(尽管后者也出现)。出版物不鼓励使用这种表示法。


至于你的第二个问题:

我们可以在其他数据类型中使用这种方法还是只能在浮点中使用它?

请参阅C# 规范

真实字面量 [其中允许的数字字面量类型E] 用于写入类型floatdoubledecimal.

但是,在分配给 a 以外的任何内容时,您必须适当地对文字进行转换或后缀,因为在 Visual Studio中Double,任何带有eorE的文字都被识别为 a 。Double我找不到指定此行为的位置。

float f1 = 7E1;     // Compile error. Needs F suffix (7E1F)
decimal d1 = 8E2;   // Compile error. Needs M suffix (8E2M)
double d2 = 9E3;    // Works.

int overninethousand = (int)9E3 + 1; // Works
于 2012-05-21T14:20:54.763 回答
16

一般来说,这是指数/科学记数法......

1.7E+3 = 1.7 x 10^3 = 1700

于 2012-05-21T14:21:01.533 回答
5

E+3 表示小数点向右移动 3 次

1.7 -> 17.0 -> 170.0 -> 1700.0

于 2012-05-21T14:21:11.947 回答
2
E+3 = 10^3, so 1.7 * 10^3 = 1700
于 2012-05-21T14:21:36.360 回答