我发现,我可以写 1E5
或 1e5
而不是 100000
。有没有办法使用这个运算符/方法/带有变量的东西?我知道我可以使用 Math.Pow(10, 5);
,但我想知道这个 E
是否也适用于变量。
最佳答案
e
不是运算符。 Is 是 C# 语言的 real literal syntax 的一部分。它在解析代码时进行评估,并且只能用于表示常量文字。
就像您可以使用后缀 f
表示浮点数或 d
表示 double 数一样,XeY
语法允许您使用值 X * 10^Y
定义 double 数。当您使用常量编写代码时,它只是为了方便。
以下是更多示例,说明您可以使用所有这些不同的语法做什么,以及它们等效于哪种类型和常量文字:
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
。关于c# - 指数运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22098465/