请帮助我,我已经被困在这些问题上几天了。我有一个 web 表单,可以在 asp.net 中付款,语言是 C#。
文本框用于接受用户的货币金额。我的要求是,如果用户输入例如 75,在 _TextChanged 事件上它将切换到 75.00。我让这部分工作。但是我的代码不检查 . 位置之后的三个字符。并删除多余的零。我的问题: 1. 如果输入的长度超过小数点后两位数,如何删除多余的零?2. 如果用户没有在文本框中输入任何数字怎么办?我已经尝试过了,但我只是得到了错误,或者它弄乱了整个代码。
protected void txtAmount_TextChanged(object sender, EventArgs e)
{
string textBoxData = txtAmount.Text;
int textLength = textBoxData.Length;
int position = txtAmountToPay.Text.IndexOf("."); //Position is the decimal
if (position == -1)
{
textBoxData = textBoxData + ".50"; // when you enter 75 you get 75.50
}
if (position == textLength -2 )
{
textBoxData = textBoxData + "4"; // when you enter 75.0 you get 75.04
}
if (position == textLength -1)
{
textBoxData = textBoxData + "30"; // when you enter 75. you get 75.30
}
if (position >= textLength - 3) // This part does not work
{
textBoxData == textBoxData.Replace(-3);// if user enters 75.0000 it will remove all the other digits after the two 0s after the decimal point
}
txtAmount.Text = textBoxData.ToString();
}