Когда вы говорите
в моей системе числа с плавающей запятой хранятся с запятой в качестве десятичного разделителя
Полагаю, вы имеете в виду, что они отформатированы с запятой, числа с плавающей запятой хранятся как float
.
Хотя вы можете решить проблему с форматированием, установив Cultures, «реальным» решением будет изменение кода. Хорошо, это не ваш код, поэтому, возможно, вы не хотите делать это в этом случае, но для общего ознакомления вы должны убедиться, что при форматировании с плавающей запятой или чем-то еще вы используете соответствующую культуру. В случае форматирования числа для использования API вы должны использовать InvariantCulture.
т.е. используйте foo.ToString(CultureInfo.InvariantCulture)
вместо foo.ToString()
и аналогично при использовании string.Format (...).
Редактировать Я только что посмотрел на код NerdDinner и понял, что эта ошибка в Javascript, а не в C #, поэтому мой код выше не поможет. Я не знаю, возможно ли форматировать числа в Javascript, но реальное решение, которое я думаю, это исправить код модели, чтобы она возвращала правильно отформатированную строку.
Редактировать 2 Я бы посоветовал вам попробовать следующее:
В SearchController.cs
измените Latitude
и Longitude
в 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),
Это должно означать, что вы не нуждаетесь в исправлении, которое вы вставили, и должны исправить ваш другой вопрос ... где я оставлю комментарий. Надеюсь, это поможет, я не полностью проверил, так как я не в вашей стране, но, похоже, это работает.