float.Parse() 需要什么符号来检测指数而不是乘以 10^n?

What notation is required for float.Parse() to detect exponents rather than multiply by 10^n?

easy-to-understand标题有点难写...

当我 运行 float.Parse()"12E2""12e2" 它 returns 1200 (12*10^2) 而不是144 (12^2)。任何数字都会发生这种情况,而不仅仅是这种情况。

编辑:是的,我知道 12E2 不应该给出 12^2。我问的是 如何 打算这样做。

需要什么符号才能使它return成为一个常规的指数(例如12^2) ?

我试过使用 ^,这会引发错误,但我似乎无法从文档中得知正则指数应该使用什么符号。

这是我的代码,一点也不多:

Debug.Log("text is " + text);
input1 = float.Parse(text.ToString());
Debug.Log("Parsed string to " + input1);

它接受用户输入 text 并将其转换为浮点数。

您拥有的 (12E2) 是标准的 scientific notation,您得到的结果是正确的 1200 (12*10^2)。这正是 E 的意思,m × 10n.

此外,对于常规 power 表达式,没有使用 Parse 的重载或选项。 Parse 并非旨在进行任意 数学运算 (这就是您要问的)

然而你可以解析你自己到一定程度并分裂E^或你真正喜欢的东西(假设这是用户输入),然后 解析 每个组件以传递到 Math.Pow.

var someWeirdString = "12E2";

var array = someWeirdString.Split('E');

var someFloat = float.Parse(array[0]);
var someInt = int.Parse(array[1]);

var someResult = Math.Pow(someFloat, someInt);

Console.WriteLine(someResult);

输出

144