这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
.