字符串中的Double或Integer?

时间:2016-04-26 07:39:39

标签: c# string variables integer double

例如,在控制台应用程序中,我有以下代码:

Console.Writeline("Enter function");
string function = Console.Readline();

然后将function定义为:

function = "ceil(5.0)";

然后我将变量定义为double。 但是如果用户输入会怎么样:

function = "ceil(5)";

如果有双重填充或整数,我如何检查,所以我现在如何存储该变量。而且如果它是相同的但随后是负数,我已经尝试了正则表达式,但也许我没有做对。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

对于浮点数,n%1 == 0通常是检查小数点后是否有任何内容的方法。

public static void Main (string[] args)
{
    decimal d = 3.1M;
    Console.WriteLine((d % 1) == 0);
    d = 3.0M;
    Console.WriteLine((d % 1) == 0);
}

输出:

False //is a double
True //is a integer

可在此页面找到更多信息: How to determine if a decimal/double is an integer?

答案 1 :(得分:0)

如果你想使用正则表达式,你可以检查函数+括号+值+ closing_parenthesis。将此作为起点:

ceil\((\-?\d{1,}(?:.\d{1,})?)\)

请注意,Regex允许使用负数。如果您不想要,请删除 \ - ?部分。