Неправильная сортировка чисел типа double при помощи JQuery
Я сделал сортировку данных в таблице при помощи JQuery DataTable(). У меня возникла проблема, когда я пытаюсь отсортировать столбец, который имеет тип double, то у меня происходит неправильная сортировка, но в то же время столбцы, которые имеют тип данных string и int, сортируются в нужном порядке. Как можно такое исправить?
Модель:
public partial class Asteroids
{
[DisplayName("Астероид")]
public int AstId { get; set; }
[DisplayName("Звезда")]
public int? StarId { get; set; }
[Required(ErrorMessage = "Не указано название астероида!")]
[StringLength(50, ErrorMessage = "Длина строки должна быть до 50 символов")]
[DisplayName("Название")]
public string AstName { get; set; }
[Range(1, int.MaxValue, ErrorMessage = "Диаметр должен быть положителен")]
[DisplayName("Диаметр (км)")]
public int? AstDiameter { get; set; }
[Range(0, int.MaxValue, ErrorMessage = "Эксцентриситет должен быть положителен")]
[DisplayName("Эксцентриситет")]
public double? AstOrbitalEccentricity { get; set; }
[Range(1, int.MaxValue, ErrorMessage = "Наклонение должно быть положительно")]
[DisplayName("Наклонение (°)")]
public double? AstOrbitalInclination { get; set; }
[Range(1, int.MaxValue, ErrorMessage = "Аргумент перицентра должен быть положителен")]
[DisplayName("Аргумент перицентра (°)")]
public double? AstArgumentOfPerihelion { get; set; }
[Range(1, int.MaxValue, ErrorMessage = "Средняя аномалия должна быть положительна")]
[DisplayName("Средняя аномалия (°)")]
public double? AstMeanAnomaly { get; set; }
[DisplayName("Звезда")]
public virtual Stars Star { get; set; }
}
Представление:
@model IEnumerable<Space.Models.Asteroids>
@{
ViewData["Title"] = "Астероиды";
}
<h1>Астероиды</h1>
<link href="~/lib/datatables/css/dataTables.bootstrap4.min.css" rel="stylesheet" />
<p>
<a asp-action="Create">Добавить</a>
</p>
<hr />
<table id="table" class="table table-striped table-bordered table-sm" cellspacing="0" width="100%">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.AstName)
</th>
<th>
@Html.DisplayNameFor(model => model.AstDiameter)
</th>
<th>
@Html.DisplayNameFor(model => model.AstOrbitalEccentricity)
</th>
<th>
@Html.DisplayNameFor(model => model.AstOrbitalInclination)
</th>
<th>
@Html.DisplayNameFor(model => model.AstArgumentOfPerihelion)
</th>
<th>
@Html.DisplayNameFor(model => model.AstMeanAnomaly)
</th>
<th>
@Html.DisplayNameFor(model => model.Star)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model) {
<tr class="Search">
<td>
@Html.DisplayFor(modelItem => item.AstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.AstDiameter)
</td>
<td>
@Html.DisplayFor(modelItem => item.AstOrbitalEccentricity)
</td>
<td>
@Html.DisplayFor(modelItem => item.AstOrbitalInclination)
</td>
<td>
@Html.DisplayFor(modelItem => item.AstArgumentOfPerihelion)
</td>
<td>
@Html.DisplayFor(modelItem => item.AstMeanAnomaly)
</td>
<td>
@Html.DisplayFor(modelItem => item.Star.StarName)
</td>
<td>
<a asp-action="Edit" asp-route-id="@item.AstId">Изменить</a> |
<a asp-action="Details" asp-route-id="@item.AstId">Детали</a> |
<a asp-action="Delete" asp-route-id="@item.AstId">Удалить</a>
</td>
</tr>
}
</tbody>
</table>
@section Scripts {
<script src="~/lib/datatables/js/jquery.dataTables.min.js"></script>
<script src="~/lib/datatables/js/dataTables.bootstrap4.min.js"></script>
<script src="~/js/customerDatatable.js"></script>
<script>
$(document).ready(function () {
$('#table').DataTable();
$('.dataTables_length').addClass('bs-select');
});
</script>
}
Например, представлена сортировка столбца "Наклонение" по возрастанию: https://i.stack.imgur.com/TWVkT.jpg