Decimal field displays a .0 on the screen

0

I have a CPF field that is decimal (11). Well, when I show on the grid the CPF it looks like this: 12345678911.0, how can I remove the .0?

My ViewModel

public class FuncionarioViewModel
    {
        [Key]
        public int id { get; set; }

        [Required(ErrorMessage = "Nome do funcionário é obrigatório", AllowEmptyStrings = false)]
        [Display(Name = "Nome")]
        public String nome { get; set; }

        [Required(ErrorMessage = "Data de Nascimento do funcionário é obrigatório", AllowEmptyStrings = false)]
        [Display(Name = "Data de Nascimento")]
        [DataType(DataType.Date, ErrorMessage = "formato de data invalido")]
        public DateTime dataNascimento { get; set; }

        //[Required(ErrorMessage = "CPF do funcionário é obrigatório", AllowEmptyStrings = false)]
        [Display(Name = "CPF")]
        [DataType(DataType.Text, ErrorMessage = "Formato inválido")]
        public String cpf { get; set; }

        [Display(Name = "Nome da Cidade")]
        public String NomeCidade { get; set; }

        [Required(ErrorMessage = "Cidade do funcionário é obrigatório", AllowEmptyStrings = false)]
        [Display(Name = "Cidade")]
        public virtual int cidade { get; set; }
    }

My getfunctions screen

@model IEnumerable<TreinamentoCrud.FuncViewModel.FuncionarioViewModel>

@{
    ViewBag.Title = "IndexVM";
}

<h2>Lista de Funcionários</h2>

<p>
    @Html.ActionLink("Novo Funcionário", "CreateVM")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.nome)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.dataNascimento)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.cpf)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.NomeCidade)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.cidade)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.nome)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.dataNascimento)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.cpf)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.NomeCidade)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.cidade)
        </td>
        <td>
            @Html.ActionLink("EditVM", "EditVM", new { id=item.id }) |
            @*@Html.ActionLink("Details", "Details", new { id=item.id }) |*@
            @Html.ActionLink("DeleteVM", "DeleteVM", new { id=item.id })
        </td>
    </tr>
}

</table>

Method to paste the list of officials

public async Task<List<FuncionarioViewModel>> GetFuncionariosVM()
        {
            string url = $"http://localhost:56137/api/GetFuncionario";
            var response = await client.GetStringAsync(url);
            var _funcionario = JsonConvert.DeserializeObject<List<FuncionarioViewModel>>(response);   


            return _funcionario;
        }
    
asked by anonymous 13.08.2018 / 20:30

1 answer

3

You need to convert to long. Because if you convert to integer it can break the limit.

  

Maximum value for a variable of type int. 2147483647

decimal cpf = 79399965412; // vem do banco tipo decimal
long novoCpf = (long)cpf ; // transforma pra long

Another option is to work with it in the Varchar format in the database.

    
13.08.2018 / 20:52