为什么c#将带有逗号或货币符号的数字转换为整数
本文关键字:符号 数字 转换 整数 货币 为什么 | 更新日期: 2023-09-27 18:08:50
我在aspx页面上有一个文本框,在文本框文本更改事件中,我注意到即使用户输入2,000或$2,000,它也会自动转换为2000。这让我措手不及,因为我认为我应该在将数字赋值给整数变量之前从数字中删除$符号和逗号。类似如下
int ID = txtID.text.Replace(",","").Replace("$", "");
这个特性是最近才引入的还是从c# 1.0开始的?
应该使用十进制。以这种格式尝试解析:
decimal result = 0;
Decimal.TryParse(text,
NumberStyles.Currency,
CultureInfo.CurrentCulture,
out result);
确保你选择了正确的文化!
查看这个演示
试着使用以下语句:
double _amt = double.Parse (txtID.text.Replace(",",String.Empty).Replace("$", String.Empty));
相应地,要将_amt
显示为字符串,请使用"C"
货币格式说明符,如:
string _strAmt = _amt.ToString("C");
希望这对你有用。
对你的问题做一点澄清:在你所展示的例子中
int ID = txtID.text.Replace(",","").Replace("$", "")
系统隐式地尝试将作为字符串呈现的数字转换为指定的int ID
变量。还有(引用):"2,000或$2,000会自动转换为200"——它真的是200或2000吗?
问好,
答案是
var id = txtID.text.Replace(",", "");
var id = txtID.text.Replace("$", "");
int result = Convert.ToInt32(id);
2000 =比;2000