c# - 当我尝试进行货币计算时,为什么会收到不正确的输入字符串错误?C#
问题描述
我正在尝试创建一个基本的银行柜员应用程序,其中余额总是从 1000 美元开始,您可以存款和取款。目前,由于余额总是从 1000 美元开始,我有
public Form1()
{
InitializeComponent();
lblBalance.Text = "1000.00";
}
在初始化程序中,因为它总是从 1000 开始,然后我有
private void btnWithdraw_Click(object sender, EventArgs e)
//Withdraw button, initializing variables to make withdrawal calculation based on current balance and what input is in withdrawal text box.
{
decimal withdraw = Decimal.Parse(txtWithdraw.Text);
decimal INaccountBalance = Decimal.Parse(lblBalance.Text);
decimal FINaccountBalance = (INaccountBalance - withdraw);
lblBalance.Text = FINaccountBalance.ToString("c");
}
在提款按钮上单击,这是一个计算,它只是根据标签中的当前余额减去任何输入到提款文本框中的输入来更新余额,但是如果我尝试提款两次以上,我的程序就会崩溃. 所以我可以为取款输入 1 个值,它会进行计算并更新余额,但如果我再次取款,它只会让程序崩溃并给我一个“输入字符串的格式不正确”。错误。
解决方案
看来,您不能使用Parse
货币格式:
lblBalance.Text = FINaccountBalance.ToString("c");
返回到类似的lblBalance.Text
东西
123.00$
(注意货币符号$
)并且这个字符串不能Parse
再次(你已经FormatException
抛出)进入decimal
on
decimal INaccountBalance = Decimal.Parse(lblBalance.Text);
您可以尝试将格式更改为F2
- 让余额为小数点后两位数
lblBalance.Text = FINaccountBalance.ToString("F2");
现在您将使用没有货币符号的十进制表示
123.00
可以Parse
在下次提款时使用
推荐阅读
- angular - 从'ng2-charts'导入{ ChartsModule };不工作
- cocoapods - 如何找到所有 CocoaPods 库的列表以及它们的作用?
- python - 踢功能仅适用于一个用户 Python 套接字聊天
- javascript - 过滤 DataTable 的 AJAX 响应
- laravel - Laravel Mix + Vue:分离 js 和 css
- node.js - 在带有 process.nextTick() 的递归函数中使用异步等待
- java - 双击.jar时Java获取当前工作目录
- python - IndexError:使用beautifulsoup 抓取广告时列出的索引超出范围
- sql - 如何从 ip2location ip 数据库中选择多个 ip 信息?
- flutter - 在 performLayout() 期间抛出了以下断言 RenderCustomMultiChildLayoutBox 对象被赋予了无限大小