我知道这是最愚蠢的问题。但实际上我很难将价格(字符串)转换为小数。这是我试过的
string s = "123.45";
decimal d = decimal.Parse(s, NumberStyles.AllowCurrencySymbol | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint);
但我得到格式异常
也试过
decimal num;
bool pass = decimal.TryParse("2.85", out num);
num出现为0。
非常感谢任何帮助。
答案 0 :(得分:8)
尝试指定.
为小数点分隔符的不变文化:
string s = "123.45";
decimal d = decimal.Parse(
s,
NumberStyles.AllowCurrencySymbol | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint,
CultureInfo.InvariantCulture
);
Parse
方法使用当前线程文化来解析数字。因此,如果您正在使用.
不是小数点分隔符(例如fr-FR
)的某种文化,那么它将无法正常工作,因为它预期数字为123,45