当你说
在我的系统浮点数存储用逗号作为小数点分隔
我假设你的意思是他们是格式化用逗号,浮点号码存储为float
。
虽然您可以通过设置文化来解决格式问题,但“真正的”修复方法是更改代码。好吧,这不是你的代码,所以也许你不想在这个场合做到这一点,但对于一般的参考你需要确保格式化浮动或其他任何你使用适当的文化。在为一个API使用的数字格式化的情况下,您可以使用InvariantCulture。
I.e.使用foo.ToString(CultureInfo.InvariantCulture)
而不是foo.ToString()
,同样使用string.Format(...)。
编辑我只是看看NerdDinner代码,并已意识到这个错误是在Javascript中不在C#中,所以我上面的代码是不会帮助。我不知道是否可以在Javascript中格式化数字,但我认为真正的解决方案是修复模型代码以返回格式正确的字符串。
编辑2我建议你尝试以下操作: 在SearchController.cs
变化JsonDinner
的Latitude
和Longitude
到strings
。即
public class JsonDinner {
public int DinnerID { get; set; }
public string Title { get; set; }
public string Latitude { get; set; }
public string Longitude { get; set; }
public string Description { get; set; }
public int RSVPCount { get; set; }
}
然后向下滚动到SearchByLocation方法,改变纬度/龙线正确格式化字符串的JavaScript:
Latitude = dinner.Latitude.ToString(CultureInfo.InvariantCulture),
Longitude = dinner.Longitude.ToString(CultureInfo.InvariantCulture),
这应该意味着你不需要你把修复,并应该解决你的其他问题......我将在哪里发表评论。希望这可以帮助,我还没有完全测试,因为我不在你的语言环境,但它肯定似乎工作。
看来,这已经记录为错误:http ://nerddinner.codeplex.com/WorkItem/View.aspx?WorkItemId = 2616 – 2009-04-17 16:17:32
嗯。也许这是一个错误?我在我的web.config文件中添加了 ,以确保文化被设置为en-US应用程序范围,但是根本没有任何帮助,只有在我发布后才发布。 –
2009-04-23 13:12:59