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