我发现,我可以写1E5
或1e5
代替100000
。有没有办法使用这个运算符/方法/变量的东西?我知道我可以使用Math.Pow(10, 5);
,但我想知道这个E
是否适用于变量。
答案 0 :(得分:7)
E表示法仅适用于常量。 Math.Pow(x, 5)
是指定变量的唯一内置方法。
修改强>
但是,Math.Pow
接受double
并返回double
,所以如果你想指数一个整数,你应该看看这个答案:this answer
答案 1 :(得分:6)
e
不是运营商。是C#语言的real literal syntax的一部分。它在解析代码时进行评估,并且只能用于表示常量文字。
就像您可以使用后缀f
表示浮点数,或d
表示双精度数一样,XeY
语法允许您定义双精度数值X * 10^Y
。当您使用常数编写代码时,它只是为了方便。
下面是一些关于你可以用所有这些不同语法做什么的例子,以及它们相当于哪种类型和常量字面值:
var a = 2e5; // (double) 200000
var b = 2.3e3; // (double) 2300
var c = 13f; // (single) 13
var d = 53d; // (double) 53
var e = 1.2e3f; // (single) 1200
var f = 2.3m; // (decimal) 2.3
var g = 1.23e-4m; // (decimal) 0.000123
但是,这些都没有暴露给.NET运行时,它在编译时全部被评估并存储为常量文字暴露 - 短语法和完整常量之间绝对没有区别。因此,此功能不适用于仅在运行时存在的变量。如果需要对这些进行取幂,则必须使用其他方法,例如myVariable * 10e5
。
答案 2 :(得分:1)
您可以使用位移运算符执行类似的操作:
int i = 1;
Console.WriteLine(i << 3); // 8
bitshift运算符<<
与1E5中的E完全相同。仅在基数2,而不是10。
答案 3 :(得分:1)
1E5表示法是指一个数值,根据定义,它是一个值。您的变量可能具有数值,只要它是数字类型(如double),但它可以更改其值(这就是它被称为变量的原因)。因此,您的变量是值的占位符,而不是值,您不能使用此表示法,因为它仅保留给值。
答案 4 :(得分:0)
使用“e”作为运算符(ish)仅限于常量。
如果这对变量起作用,就会造成严重破坏......例如:
Hello = 10;
H = 1;
llo = 5;
x = Hello
“x”现在等于10还是1e5?
Math.Pow(x,y)
是您最好的选择。