我需要知道给定的String是否是一个纯整数,这意味着它不是double并且没有浮动。
我所尝试的是一个正则表达式:
@"^\d+$"
if (Regex.IsMatch(oStreamDataValues[i].ToString(), @"^\d+$") == false)
这样可以正常工作,但只有在字符串包含0.00或任何其他数字值的数字时才能正常工作。
答案 0 :(得分:5)
您可以使用Text
方法:
TryParse
答案 1 :(得分:4)
为什么不尝试使用int.TryParse
解析它:
<script type="text/javascript" src="media/js/dklab_realplexor.js"></script>
<script type="text/javascript">
$(function () {
var realplexor = new Dklab_Realplexor('http://rpl.mydomain.com/', 'test_');
realplexor.subscribe("Alpha", function(data) { alert("Alpha: " + data) });
realplexor.execute();
});
</script>
如果您还想解析string s = "-12";
int i;
bool isInt = int.TryParse(s, out i);
:
0.00
答案 2 :(得分:2)
正如我所看到的,在你的情况下,一些浮点值是正例
4.00 // <- just 4
1e3 // <- is 1000
1e100 // <- 10...0 (100 zeros)
所以我建议将其解析为Double
,然后测试小数部分是否为0:
String s = "123.0";
Double v;
if (Double.TryParse(s, NumberStyles.Any, CultureInfo.InvariantCulture, out v))
if ((v - Math.Truncate(v)) < Math.Abs(v) / 1.0e20) //TODO: Adjast tolerance here
Console.Write("this is an integer value");
答案 3 :(得分:0)
我personnaly会使用Int32静态方法来解析String。 有TryParse和Parse(取决于你是否想要使用try / catch)。
int returnedNumber = 0;
if(!Int32.TryParse(oStreamDataValues[i].ToString(), out returnedNumber)) {
//enter code here
}
或
bool isInt = true;
int returnedNumber = 0;
try {
returnedNumber = Int32.Parse(oStreamDataValues[i].ToString());
}
catch(FormatException) {
isInt = false;
}
if(!isInt) {
//enter code here
}
s参数包含以下形式的数字:
[ws] [sign] digits [ws]
方括号中的项([和])是可选的。下表描述了每个元素。
ws可选的空格。
标志可选标志。
digits一个数字序列,范围从0到9.
解析:https://msdn.microsoft.com/en-us/library/b3h1hf19%28v=vs.110%29.aspx
TryParse:https://msdn.microsoft.com/en-us/library/f02979c7%28v=vs.110%29.aspx