0

所以我在这里遇到了一个非常奇怪的问题。我ListItem item = Currency.Items[Currency.SelectedIndex]; 为我的标签创建了一个货币。一切顺利。项目将获得我在 aspx 页面中选择的值。但是当我尝试转换item.Valuedecimal newAmountwith时会出现问题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";
}

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

4

1 回答 1

0

您应该分别考虑用于解析数字的区域性区域设置。有一个Parse 方法的重载,它采用您应该尝试的 IFormatProvider。

如果您总是使用小数点作为分隔符,您也可以使用decimal.Parse(s, System.Globalization.CultureInfo.InvariantCulture).

于 2013-11-11T12:46:36.993 回答