例如,在控制台应用程序中,我有以下代码:
Console.Writeline("Enter function");
string function = Console.Readline();
然后将function
定义为:
function = "ceil(5.0)";
然后我将变量定义为double。 但是如果用户输入会怎么样:
function = "ceil(5)";
如果有双重填充或整数,我如何检查,所以我现在如何存储该变量。而且如果它是相同的但随后是负数,我已经尝试了正则表达式,但也许我没有做对。有什么想法吗?
答案 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允许使用负数。如果您不想要,请删除 \ - ?部分。