Контекст: Я занимаюсь сортировкой с использованием Sortable
.Избегать поведения округления по умолчанию с десятичными знаками в C#
$("#sortable").sortable({
update: function (e,ui)
{
nextItemPrio=parseFloat(ui.item.next().find("input[name='Priority']").val().replace(",", "."));
prevItemPrio = parseFloat(ui.item.prev().find("input[name='Priority']").val().replace(",", "."));
currentItemPrio = parseFloat(ui.item.find("input[name='Priority']").val().replace(",", "."));
if ((nextItemPrio < currentItemPrio && prevItemPrio < currentItemPrio)
|| (nextItemPrio > currentItemPrio && prevItemPrio > currentItemPrio)) {
ui.item.find("input[name='Priority']").val((prevItemPrio + nextItemPrio)/2.0);
}
В контроллере у меня есть:
public ActionResult UpdatePicturePriority(int id, string newpriority)
{
var a = _PictureRepo.GetById(id);
decimal convertDecimal = Convert.ToDecimal(newpriority.Replace(".", ","),);
a.Priority = convertDecimal;
_PictureRepo.Update(a);
return Json(true);
}
После нескольких сортировок (водолазных), я получаю некоторое число, как 0,0023565
но мне кажется, что преобразование в 0
когда я отправляю значение для контроллера (приложение MVC). Я не хочу этого, потому что мой код не работает после нескольких разделов. Я не хочу, чтобы мои номера округлялись.
Кажется, что ваша проблема заключается в jQuery, а не в контроллере. Где вы теряете точность? –
Если я console.log результаты, я получаю что-то вроде 0.00055, но когда я обновляю страницу (получаю результаты из базы данных), я получаю 0. Контроллер получает значение: 0.00055 –
Хм, казалось бы, проблема в том, что вы теряете точность в ваше обновление базы данных. Вы подтвердили, что ценность - это то, что вы ожидаете в своей базе данных? –