C# 文化信息逗号不';I don’我不能把我的十进制数读作十进制数

C# 文化信息逗号不';I don’我不能把我的十进制数读作十进制数,c#,cultureinfo,C#,Cultureinfo,我用逗号输入的my_waste(以db为单位)的值为: 16.78 我通过linq进行选择,并: res.Add("testdb", p.my_waste); 我得到1678 我试过: res.Add("test", double.Parse(p.my_waste.ToString(), CultureInfo.InvariantCulture)); 及 而我仍然得到了1678英镑 不变的文化是文化不敏感的;它与英语相关,但与任何国家/地区无关 这意味着它希望数字有一个小数点,因为英语(所

我用逗号输入的my_waste(以db为单位)的值为:

16.78
我通过linq进行选择,并:

res.Add("testdb", p.my_waste);
我得到1678

我试过:

res.Add("test", double.Parse(p.my_waste.ToString(), CultureInfo.InvariantCulture));

而我仍然得到了1678英镑

不变的文化是文化不敏感的;它与英语相关,但与任何国家/地区无关

这意味着它希望数字有一个小数点,因为英语(所有变体)使用的是小数点而不是小数点逗号

如果使用十进制逗号输入数据,则需要使用具有十进制逗号的区域性(例如法语)来转换字符串编号


目前,逗号被视为千位分隔符,实际上被忽略了,所以正如您所观察到的,“16,78”显示为1678。

当您调试并检查
p.my_waste
时,我猜值是1678。如何将该值从数据库中获取到该属性/字段中?类型是什么?是的,如果
p.my\u waste
已经是
1678
,那么调用
double.Parse(p.my\u waste.ToString(),?)
是无用的。数据库中的
p.my\u waste.GetType()
?@HansKesting p.my\u waste是浮动的。
res.Add("test", string.Format(CultureInfo.InvariantCulture, "{0:0.00}", p.my_waste));