浮点数是什么?
什么是E+3
? 这到底发生了什么? 我们可以在其他数据类型中使用此方法,还是只能在浮点数中使用它?
static void Main(string[] args) { double w = 1.7E+3; Console.WriteLine(w); }
输出:1700
E表示法
大多数计算器和许多计算机程序在科学记数法中呈现非常大且非常小的结果。 因为像10 7这样的上标指数不能总是方便地显示,所以字母E或e通常用于表示提升到幂的10倍(将写为“x 10 b ”),然后是指数的值。 注意,在这种用法中,字符e与数学常数e或指数函数e x无关(与大写字母E不太相关的混淆); 虽然它代表指数,但符号通常被称为(科学)E符号或(科学)符号,而不是(科学)指数符号(尽管后者也会出现)。 出版物不鼓励使用这种表示法。
至于你的第二个问题:
我们可以在其他数据类型中使用此方法,还是只能在浮点数中使用它?
参见C#规范 :
真实文字[允许其中包含
E
的数字文字的类型]用于写入float
,double
和decimal
类型的值。
但是,在分配给Double
以外的任何其他时,必须适当地转换或后缀文字,因为任何带有e
或E
文字在Visual Studio中都被识别为Double
。 我找不到指定此行为的位置。
float f1 = 7E1; // Compile error. Needs F suffix (7E1F) decimal d1 = 8E2; // Compile error. Needs D suffix (8E2D) double d2 = 9E3; // Works. int overninethousand = (int)9E3 + 1; // Works
一般来说,这是指数/科学记数法……
1.7E + 3 = 1.7×10 ^ 3 = 1700
E + 3表示小数位向右移动3次
1.7 – > 17.0 – > 170.0 – > 1700.0
E+3 = 10^3, so 1.7 * 10^3 = 1700