我发现,我可以写 1E51e5 而不是 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/

10-11 03:07
查看更多