指数运算符

Cub*_*i73 2 c# variables exponent

我发现,我可以写1E51e5代替100000.有没有办法使用这个运算符/方法/变量的东西?我知道我可以使用Math.Pow(10, 5);,但我想知道这是否E适用于变量.

wiz*_*lus 7

E表示法仅适用于常量.Math.Pow(x, 5)是指数变量的唯一内置方法.

编辑

但是,Math.Pow接受doubles并返回a double,所以如果你想指数一个整数,你应该看看这个答案: 这个答案


pok*_*oke 6

e不是运营商.是C#语言真正的文字语法的一部分.它在解析代码时进行评估,并且只能用于表示常量文字.

就像您可以使用后缀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
Run Code Online (Sandbox Code Playgroud)

但是,这些都没有暴露给.NET运行时,它在编译时都被评估并存储为常量文字 - 短语法和完整常量之间绝对没有区别.因此,此功能不适用于仅在运行时存在的变量.如果需要对这些进行取幂,则必须使用其他方法myVariable * 10e5.