C# 保存时将输入(浮点)转换为整数

C# 保存时将输入(浮点)转换为整数,c#,asp.net-core-mvc,C#,Asp.net Core Mvc,问题: 当表单的信息发送到POST操作时,浮点变量将丢失小数点,并转换为整数,而不是浮点 信息: 这是包含变量定义的类:PUnit和CoinValue: public class Device { [Key] public int DeviceID { get; set; } [Display(Name = "Precio por Jugada")] public float PUnit { get; set; } public float CoinVal

问题:

当表单的信息发送到POST操作时,浮点变量将丢失小数点,并转换为
整数,而不是
浮点

信息:

这是包含变量定义的类:
PUnit
CoinValue

public class Device
{
    [Key]
    public int DeviceID { get; set; }
    [Display(Name = "Precio por Jugada")]
    public float PUnit { get; set; }
    public float CoinValue { get; set; }
}
在视图中,我展示了此类的集合,每个类都包装在一个表单中,以便单独发送给控制器:

@model IEnumerable<Application.Models.Device>

{...}
      <div class="form-group" form="@(String.Format("{0}{1}", "form", item.DeviceID))">
          <div>
              <input type="number" name="CoinValue" asp-for="@item.CoinValue" min="0" max="5" step="0.5"
              form="@(String.Format("{0}{1}", "form", item.DeviceID))" class="form-control" />
              <span asp-validation-for="@item.CoinValue" class="text-danger"></span>
          </div>
      </div>    
结果:

例如,当我插入一个
0,5
的值时,它会被转换并作为5保存到数据库中。与4,5相同;显示为45,我不知道为什么。谢谢你的建议

更新:

在使用Chrome进行调试后,我发现表单中的数字是通过以下形式发送的:
1.5
,而不是导致错误的
1,5
。这只在这个视图中出现,因为我在另一个视图上测试了它,它没有改变数字的格式

这两种形式之间的区别在于,第二种形式仅定义为输入:

            <div class="form-group">
                <label asp-for="StoreArea" class="col-md-2 control-label"></label>
                <div class="col-md-10">
                    <input asp-for="StoreArea" class="form-control" />
                    <span asp-validation-for="StoreArea" class="text-danger"></span>
                </div>
            </div>

而第一个定义为

<input type="number" {...}>


我相信添加这个`type=“number”`property会改变输入的格式,但是我的数据库不接受这个有效值。,我相信。

你的意思是说你通过了0.5而不是0,5?@AndyEvans。在我的区域,我们用逗号而不是点来定义小数点,你的系统不这么认为。这就是为什么它去掉逗号,因为它假定它只是一个数字分组符号。为所需的数字格式设置一个适当的区域性。@SamiKuhmonen我同意,但在另一个视图中,我正在使用相同的逗号格式保存另一个属性(没有问题):但我将尝试检查您所说的内容请向我们展示(来自Chrome开发工具)你发布的确切有效载荷。你是说你通过了0.5而不是0.5吗?@AndyEvans。在我的区域,我们用逗号而不是点来定义小数点,你的系统不这么认为。这就是为什么它去掉逗号,因为它假定它只是一个数字分组符号。为所需的数字格式设置适当的区域性。@SamiKuhmonen我同意,但在另一个视图中,我正在使用相同的逗号格式保存另一个属性(没有问题):但我将尝试检查您所说的内容请(从Chrome开发工具)向我们显示您发布的确切负载。
<input type="number" {...}>