在javascript 客户端上,我发送十进制值:
"Latitude": 80.435435344
在服务器端我收到字符串:
"80,435435344"
然后我尝试解析字符串:
valueResult.AttemptedValue = "80,435435344";
NumberFormatInfo dbNumberFormat = CultureInfo.CurrentCulture.NumberFormat;
actualValue = double.Parse(valueResult.AttemptedValue, dbNumberFormat);
我的文化是" de-DE"这意味着它的
NumberFormatInfo.NumberDecimalSeparator
有","设置
但是当字符串被解析为 double 时,其表示形式为:
80.435435344
为什么我的逗号消失了?
答案 0 :(得分:0)
你可以在调试器中看到,因为Visual Studio的文化在应用程序中与文化不同,所以当你在调试器中看到点而不是逗号时没有问题,因为应用程序以正确的方式处理它
同样,当你对double进行字符串化时,你应该指定格式提供者,它使用逗号代替点
double a = 80.435435344;
string aString = a.ToString(CultureInfo.CurrentCulture.NumberFormat);
//or
string aString = a.ToString(CultureInfo.CreateSpecificCulture("de-DE").NumberFormat);
// Both solutions return 80,435435344
你会得到你的逗号。