NaVeN Kumar Ответов: 1

Десятичное значение 0110 преобразуется в 72?


Привет Ребята,

Я столкнулся с другой проблемой, которую не смог решить. У меня есть модель с десятичным параметром.

public class Equipment
{
 public decimal Cost { get; set; }
public string Test1 { get; set; }
public string Test { get; set; }
}


В контроллере WebApi у меня есть метод, который примет этот список оборудования, как показано ниже.


[HttpPost]
	    [Route("ProjectEquipments/Import")]
	    public async Task<HttpResponseMessage> Import([FromBody] List<Equipment> equipments)
	    {
 code..
}


Когда ударил метод от почтового человека, отправив, как показано ниже.. Я получаю себестоимость как 72. Не уверен, где он будет преобразован. Может ли кто-нибудь помочь мне в этом?

[
  {
    "Cost": 0110,
    "Test": "string",
    "Test1": "string",
 
  }
]


Большое вам спасибо за помощь!!

Что я уже пробовал:

Я не могу понять, где он преобразуется. Я получаю преобразованное значение в качестве входных данных для моего метода контроллера.

F-ES Sitecore

Он думает, что "0110" является восьмеричным (основание 8). Может быть, попробовать без ведущего 0, так что просто 110.

1 Ответов

Рейтинг:
10

Jochen Arndt

0110-это восьмеричное представление десятичного значения 72.

В C / C++ восьмеричные значения обозначаются начальным нулем. Похоже, что входные данные анализируются сборкой модуля из C/C++ (C# их не поддерживает).

Проблема должна быть решена путем удаления ведущего нуля:

[
  {
    "Cost": 110,
    "Test": "string",
    "Test1": "string",
 
  }
]


NaVeN Kumar

Если конечный пользователь передает в качестве 0110 потребуется 72. Мы можем допустить, что каким-либо другим способом?

Jochen Arndt

Если это из пользовательского ввода, вы, вероятно, получите его в виде строки. Затем следует также проверить, является ли вход допустимым числом. Если это так, просто используйте числовое значение и распечатайте его.

Если нет, то вы можете:
- Преобразуйте строку в int и распечатайте ее, или
- Удалить ведущие нули из строки

Afzaal Ahmad Zeeshan

Хороший улов. 5ед.