C# 验证我的钱
我在验证资金输入时遇到一些问题。我使用了其他问题中的一些指针来编写更好的代码。下面是我用来验证输入是否是钱的内容C# 验证我的钱,c#,validation,numbers,currency,C#,Validation,Numbers,Currency,我在验证资金输入时遇到一些问题。我使用了其他问题中的一些指针来编写更好的代码。下面是我用来验证输入是否是钱的内容 static void Main(string[] args) { string myTest1 = "$1,234.56"; string myTest2 = "$1.00"; string myTest3 = "$1000.01"; string myTest4 = "$1,234,567.89"; myIsMaybeMoneyValid
static void Main(string[] args)
{
string myTest1 = "$1,234.56";
string myTest2 = "$1.00";
string myTest3 = "$1000.01";
string myTest4 = "$1,234,567.89";
myIsMaybeMoneyValidator Miimv = new myIsMaybeMoneyValidator();
bool myResult1 = Miimv.isMaybeMoney(myTest1);
bool myResult2 = Miimv.isMaybeMoney(myTest2);
bool myResult3 = Miimv.isMaybeMoney(myTest3);
bool myResult4 = Miimv.isMaybeMoney(myTest4);
}
public bool isMaybeMoney(object theirMaybeMoney)
{
string myMaybeMoney = theirMaybeMoney.ToString();
if (myMaybeMoney.StartsWith("-"))
{
myMaybeMoney.Remove(0, 1);
}
if (!myMaybeMoney.StartsWith("$"))
{
return false;
}
myMaybeMoney.Remove(0, 1);
string[] myMaybeMoneyStringArray = myMaybeMoney.Split('.');
string myMaybeMoneyDollars = myMaybeMoneyStringArray[0];
string myMaybeMoneyCents = myMaybeMoneyStringArray[1];
if (!isDollars(myMaybeMoneyDollars))
{
return false;
}
if (!isCents(myMaybeMoneyCents))
{
return false;
}
return true;
}
private bool isDollars(string theirMaybeMoneyDollars)
{
if (!isNumber(theirMaybeMoneyDollars))
return false;
try
{
int myMaybeDollars = Convert.ToInt32(theirMaybeMoneyDollars);
if (myMaybeDollars < 1)
return false;
return true;
}
catch (Exception)
{
return false;
}
return true;
}
private bool isCents(string theirMaybeMoneyCents)
{
if (!isNumber(theirMaybeMoneyCents))
return false;
try
{
int myMaybeCents = Convert.ToInt32(theirMaybeMoneyCents);
if (myMaybeCents > 99)
return false;
if (myMaybeCents < 1)
return false;
return true;
}
catch (Exception)
{
return false;
}
return true;
}
private bool isNumber(object theirMaybeNumber)
{
return Microsoft.VisualBasic.Information.IsNumeric(theirMaybeNumber);
}
static void Main(字符串[]args)
{
字符串myTest1=“$1234.56”;
字符串myTest2=“$1.00”;
字符串myTest3=“$1000.01”;
字符串myTest4=“$1234567.89”;
myIsMaybeMoneyValidator Miimv=新的myIsMaybeMoneyValidator();
bool myResult1=Miimv.isMaybeMoney(myTest1);
bool myResult2=Miimv.isMaybeMoney(myTest2);
bool myResult3=Miimv.isMaybeMoney(myTest3);
bool myResult4=Miimv.isMaybeMoney(myTest4);
}
公共资产可能是货币(反对他们的货币)
{
字符串myMaybeMoney=theirMaybeMoney.ToString();
if(myMaybeMoney.StartsWith(“-”)
{
myMaybeMoney.Remove(0,1);
}
如果(!myMaybeMoney.StartsWith($))
{
返回false;
}
myMaybeMoney.Remove(0,1);
字符串[]myMaybeMoneyStringArray=myMaybeMoney.Split('.');
字符串myMaybeMoneyDollars=myMaybeMoneyStringArray[0];
字符串mymaybemonencents=myMaybeMoneyStringArray[1];
如果(!isDollars(myMaybeMoneyDollars))
{
返回false;
}
如果(!isCents(mymaybemonencents))
{
返回false;
}
返回true;
}
私有bool-isDollars(将它们的rmaybemoneydollars串起来)
{
如果(!isNumber(他们的货币))
返回false;
尝试
{
int myMaybeDollars=Convert.ToInt32(它们的rmaybemoneydollars);
如果(myMaybeDollars<1)
返回false;
返回true;
}
捕获(例外)
{
返回false;
}
返回true;
}
私有文件(字符串他们的MyMemoneycents)
{
如果(!isNumber(他们的名字))
返回false;
尝试
{
int myMaybeCents=Convert.ToInt32(它们的mybemonycents);
如果(myMaybeCents>99)
返回false;
如果(myMaybeCents<1)
返回false;
返回true;
}
捕获(例外)
{
返回false;
}
返回true;
}
私有bool isNumber(对象的名称)
{
返回Microsoft.VisualBasic.Information.IsNumeric(他们的MyByEnumber);
}
结果都不是钱,这让我很困惑。看起来C#中有一个内置的钱验证 发件人: 试试看
decimal.TryParse(myTest4,NumberStyles.Currency,新文化信息(“en-US”),out myResult4)
只需使用:
float value;
bool isMoney= float.TryParse(str,
NumberStyles.Currency,
CultureInfo.GetCultureInfo("en-US"),
out value);
如果你想知道你的代码出了什么问题,可能是Microsoft.VisualBasic.Information.IsNumeric(他们的名字);不处理逗号。什么是myIsMaybeMoneyValidator?定义在哪里?正在等待正则表达式解决方案。。。还有,你为什么不使用正则表达式呢?我打赌美元有很多很好的例子。你需要学习正则表达式。我收回我以前的说法,似乎C有一个内置的货币函数。为什么C已经处理了itRegEx,而使用凌乱的正则表达式可能是这里的解决方案。。如果表达式包含以+或-字符开头的有效数值表达式或包含逗号,则IsNumeric也会返回True。
float value;
bool isMoney= float.TryParse(str,
NumberStyles.Currency,
CultureInfo.GetCultureInfo("en-US"),
out value);