后台cs代码中有这样一个函数
DataContext db = new DataContext();
public double Longitude()
{
CompanyInfo company = db.CompanyInfos.SingleOrDefault();
if (company == null)
{
return 0;
}
else
{
return double.Parse(company.Longitude);
}
}
在前台JS中我使用了<%%>来获取这个值,
var Longitude = "<%=Longitude()%>";
遇到这样的情况,我后台获取的Longitude的值是12.1234,结果前台取到的却变成12,1234
不知道有没有人遇到这种情况,是什么原因呢?
你如果要调方法的话应该是用这种<%=%>,而上面那种应该是在数据绑定的时候用到的吧,具体差别我也不清楚。
把double的类型换一下呢?
很诡异。。。我本地写了个方法试了下,没有出现像您说的这种情况。。
那个方法里面直接转成string再返回吧
有可能是多语言本地化的关系,在不同的文化中,小数点可能被现实为点号(.) 或逗号(,).
如果数据类型是double,请使用 double.ToString(System.Globalization.CultureInfo.InvariantCulture);
<%=Longitude().ToString(System.Globalization.CultureInfo.InvariantCulture) %>
你用JS脚本显示出来看看是什么,后台取得的因为要经过浏览器编译到客户端,可能会跟后台显示出来的不一样,你测试一下,估计是特殊字符的原因.
我也感觉是多语言本地化的问题,记得我在之前做国际化项目中就有一种语言点号(.)现实出来却是逗号(,)