当你说
在我的系统上,浮点数以逗号作为小数分隔符存储
我假设您的意思是它们用逗号格式化,浮点数存储为float
.
虽然您可以通过设置文化来解决格式问题,但“真正的”解决方法是更改代码。好的,这不是您的代码,所以也许您不想在这种情况下这样做,但作为一般参考,您需要确保在格式化浮点数或其他任何内容时使用适当的文化。在格式化数字以供 API 使用的情况下,您将使用 InvariantCulture。
即在使用 string.Format(...) 时使用foo.ToString(CultureInfo.InvariantCulture)
代替和同样。foo.ToString()
编辑我刚刚查看了 NerdDinner 代码并意识到这个错误出现在 Javascript 而不是 C# 中,所以我上面的代码没有帮助。我不知道是否可以在 Javascript 中格式化数字,但我认为真正的解决方案是修复模型代码以返回格式正确的字符串。
编辑 2我建议您尝试以下操作:在更改SearchController.cs
和Latitude
更改为. IELongitude
JsonDinner
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 方法并更改 Lat/Long 行以正确格式化 JavaScript 的字符串:
Latitude = dinner.Latitude.ToString(CultureInfo.InvariantCulture),
Longitude = dinner.Longitude.ToString(CultureInfo.InvariantCulture),
这应该意味着您不需要您输入的修复程序,并且应该解决您的其他问题......我将在哪里发表评论。希望这会有所帮助,因为我不在您的语言环境中,所以我还没有完全测试过,但它似乎确实有效。