Использование запятой в качестве десятичного разделителя - PullRequest
0 голосов
/ 07 февраля 2020

С Клиента пользователь вводит двойное число, и единственное правило должно состоять в том, что если у него есть «точка», он должен быть преобразован в запятую. Проблема в том, что когда я передаю число с запятой в качестве разделителя в контроллер через AJAX, параметр double в контроллере не может прочитать значение, и он вылетает. По этой причине мне пришлось поместить строку параметров в контроллер, чтобы он мог прочитать значение.

var pesoArticolo = $("#editPesoArticoloTextBox").val();
pesoArticolo = pesoArticolo.replace(".", ",");
[HttpGet]
public JsonResult ProcessEditPesoArticolo(int idArticolo, string pesoArticolo)
{           
  var pesoArticoloDouble = double.Parse(pesoArticolo, CultureInfo.InvariantCulture);
}

Проблема в контроллере заключается в том, что я не могу найти какой-либо метод, который преобразует разделитель в запятую. CultureInfo.InvariantCulture также имеет проблему, заключающуюся в том, что если число равно 0,067, оно удаляет весь начальный ноль и становится 67.

Есть ли какое-либо решение для этого? Мне нужно использовать запятую в качестве разделителя, потому что она должна быть сохранена в базе данных (поле с плавающей запятой), которая также считывается другим программным обеспечением, которое использует запятую в качестве разделителя.

1 Ответ

0 голосов
/ 07 февраля 2020

Вам нужно будет использовать культуру, в которой в качестве десятичного разделителя используется запятая (пример - "DE-de" для Германии)

[HttpGet]
public JsonResult ProcessEditPesoArticolo(int idArticolo, string pesoArticolo)
{           
  // replace DE-de with your own culture
  var pesoArticoloDouble = double.Parse(pesoArticolo, new CultureInfo("DE-de"));
}

https://dotnetfiddle.net/cuTggE

...