【发布时间】:2014-09-23 06:43:41
【问题描述】:
我需要找出用户在文本框中输入的值。
用户可以在文本框中输入整数、双精度或十进制数字。
我应该使用哪个来验证值?
Double.Parse(txtboxNo.text)
int.Parse(txtboxNo.text);
Decimal.Parse(txtboxNo.text)
我试过了(如果用户输入 1 或 1.8,这个功能仍然有效):
public bool IsNumeric(string strNbr)
{
Double d_Nbr;
try
{
d_Nbr = Double.Parse(strNbr);
return true;
}
catch (Exception ex)
{
return false;
}
}
我的问题: 我正在开发一个移动销售应用程序。销售人员有权更改价格。推销员想快速工作。所以,我需要检测他是否输入了正确的价格(我的价格是十进制的)如果他输入了怎么办:例如:1 或 1.0 或 23 或 333.0 或按有趣的 123456 。我如何处理?
【问题讨论】:
-
你在用这个值做什么?询问是因为这似乎不是您将面临的实际问题。还有,Double 和 Decimal 的字符串表示有什么区别?
-
检查框架的“is”关键字。
-
如果他们可以输入小数,那么
int.parse会出错,我个人会使用正确的TryParse -
@Nenotlep "2e4" 是
Double.Parse的有效输入,但不适用于Decimal.Parse。 -
您应该向我们解释您对在文本框中输入“1”的用户的决定/偏好。这种困境没有任何意义。您应该担心该输入的预期用途并采取相应措施。
标签: c#