Convert "2.45" to decimal

本文关键字:quot decimal to Convert | 更新日期: 2023-09-27 18:01:20

我知道这是最愚蠢的问题。但实际上,我在将price(string)转换为十进制时遇到了麻烦。这是我尝试过的

string s = "123.45";
decimal d = decimal.Parse(s, NumberStyles.AllowCurrencySymbol | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint);

但是我得到Format exception

Also tried

decimal num;
bool pass = decimal.TryParse("2.85", out num);

num输出为0。

Convert "2.45" to decimal

尝试指定一个以.为小数分隔符的不变区域性:

string s = "123.45";
decimal d = decimal.Parse(
    s, 
    NumberStyles.AllowCurrencySymbol | NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint, 
    CultureInfo.InvariantCulture
);

Parse方法使用当前线程区域性来解析数字。因此,如果您使用某些文化,其中.不是小数分隔符(例如fr-FR),它将无法工作,因为它期望的数字是123,45,例如。