C# C:如果输入超过2位小数,则显示错误代码

C# C:如果输入超过2位小数,则显示错误代码,c#,C#,我正在尝试用C语言编写一个类似于收银机的程序,我想让用户不可能输入一个超过2位小数的数字=x.12是可以的,但不是x.123 谢谢你的回答 编辑:代码示例会有很大帮助。我既不擅长编程也不擅长英语= 使用NumericUpDown控件捕获输入并将其DecimalPlaces属性设置为2。将输入转换为字符串并检查其多个解决方案的长度 例如: void checkLenghth() { decimal value = 2.15; string stringDecimal = value

我正在尝试用C语言编写一个类似于收银机的程序,我想让用户不可能输入一个超过2位小数的数字=x.12是可以的,但不是x.123

谢谢你的回答


编辑:代码示例会有很大帮助。我既不擅长编程也不擅长英语=

使用NumericUpDown控件捕获输入并将其DecimalPlaces属性设置为2。

将输入转换为字符串并检查其多个解决方案的长度

例如:

void checkLenghth()
{
    decimal value = 2.15;
    string stringDecimal = value.ToString();
    string[] splitStrings = stringDecimal.Split('.');
    if (splitStrings[1] > 3)
    MessageBox("Its wrong!"); 
}

这只是一个定位示例,我并不是说它必须像批评者那样实施:

您可以将小数点四舍五入为2

decimal a = 1.994444;

Math.Round(a, 2);

可以使用正则表达式测试输入。下面的示例要求输入至少由一位数字组成,可以选择后跟一个小数位,后跟1或2个额外数字:

string number = "1.23";
bool isMatch = Regex.IsMatch(number, @"^\d+(\.\d{1,2})?$");

我是编程新手,所以我不明白你的意思。你能用代码展示一个例子吗?。。。那么您的系统将被限制在少于10的数量?例如,使用这种逻辑,10.01的值将是无效的。它不限于任何东西,它只是一个例子,当然,据说批评者甚至会从坟墓里站起来。你现在可以用string.split来检查点后面的部分,不是吗?如果你想首先提供一些建议,即使只是一个例子,它至少应该是最低限度的理智。通过检查数字字符串表示的总长度来检查一个数字在小数点分隔符后是否只有两位数或最多两位数,这不是我们应该教的东西。特别是对于初学者,他们显然对编程知之甚少。你的更好建议是?我认为这是一个最低限度的理智的巨大lol,虽然我们不是所有人都像你一样是超级程序员,希望你有幽默感。检查它的字符串表示有什么疯狂的?检查字符串表示的总长度是非常疯狂的,因为我在第一条评论中提到了这个原因。正如您自己在评论中建议的那样,使用“String.Split”来确保只计算小数点分隔符后的数字,这是朝着正确方向迈出的一步,如果您更改了对此的答案,那么当然会删除否决票。是的,我确实有幽默感,不,我不是超级程序员当然,这是个笑话,幽默!,因为我真的是一个超级程序员再次开玩笑。。。我可以一直这样下去-我不希望用户能够输入任何超过2位小数的数字,因此此解决方案对我没有帮助。无论如何,谢谢你。好吧,你没有提到你正在创建什么样的应用程序。我的意思是,你会从winform、wpf、asp.net或控制台应用程序获取输入吗。如果不是控制台应用程序,您可以实现验证输入的验证框架。对于asp.net的这一要求,您可以检查google的Java脚本验证。由于您对编程不太了解,因此很难解释。我可以想到的另一种方法是,对于获取输入的特定字段,您可以处理keydown事件并检查输入。基于此,您可以修改字符串或显示错误消息。此外,您还可以在WPF和asp.net中使用正则表达式验证程序。