我有这样的字符串:
strings s = "1.0E-20"
有没有办法使用正则表达式从中只得到 -20? 我试过这个:
(([1-9]+\.[0-9]*)|([1-9]*\.[0-9]+)|([1-9]+))([eE][-+]?[0-9]+)?
这让我在 group5 中得到了 e-20,但仍然不仅仅是 -20。
请您参考如下方法:
使用Regex处理文本,使用Math(s)处理数字:
Math.Log10(Convert.ToDouble("1.0E-20")) // returns -20
要确保您的字符串输入是有效的 double,请使用 TryParse:
double d, result = 0.0;
if (Double.TryParse("1.0E-20", out d))
{
result = Math.Log10(d);
}
else
{
// handle error
}
此外,如果您想从输入中获取 1.0(乘数):
var d = Convert.ToDouble("1.0E-20");
var exponent = Math.Log10(d);
var multiplier = d / exponent;
