decimal.Parse(item.Value)抛出带有Listitems的FormatException

时间:2013-11-11 12:18:31

标签: c# asp.net

所以我在这里遇到一个非常奇怪的问题。 我创建了一个ListItem item = Currency.Items[Currency.SelectedIndex]; 货币是我的标签。一切都在这里好吧。物品将获得该价值 我在aspx页面中选择了什么。但是,当我尝试使用item.Valuedecimal newAmount转换为decimal.Parse(item.Value)时,会出现此问题。

继承代码

protected void Convert_money(object sender, EventArgs e)
{
    decimal oldAmount;
    bool success = decimal.TryParse(US.Value, out oldAmount);
    if (success)
    {
        ListItem item = Currency.Items[Currency.SelectedIndex];
        string s = item.Value;
        decimal newAmount = oldAmount * decimal.Parse(s);
        // decimal newAmount = oldAmount * decimal.Parse(s);
        Result.InnerText = s;
    }
    else
        Result.InnerText = "error";
}

它抛出: 输入字符串的格式不正确。 我完全从我的书中复制并搜索了答案,但无法找到解决方案。

1 个答案:

答案 0 :(得分:0)

您应该考虑用于解析数字的区域性文化。 您应该尝试overload of the Parse method that takes an IFormatProvider

如果您始终使用小数点作为分隔符,则还可以使用decimal.Parse(s, System.Globalization.CultureInfo.InvariantCulture)