【问题标题】:Angular/javascript show always 3 decimals in inputAngular/javascript 在输入中始终显示 3 位小数
【发布时间】:2016-09-09 14:09:40
【问题描述】:

我正在使用 angular,我想通过 html input type="number" 向用户显示数据

<input type="number" step="0.001" class="form-control" style="width: 75px" ng-model="product.price"  />

我总是想显示 3 个小数位。但是数据的来源,有时有

value:1.01       -> i need 1.010
value:1.004      -> i need 1.004
value:1          -> i need 1.000

我试过 .toFixed(3),但这会返回一个字符串,这不是我需要的(无法在输入类型号中显示)

尝试 parseFloat(mynumber.toFixed(3)),但这将再次删除多余的零。

也许有一种方法可以屏蔽输入,如果不存在则显示一些额外的小数?

【问题讨论】:

    标签: javascript html angularjs


    【解决方案1】:

    角度过滤器不适用于输入元素。 Here 是一个指令示例,它使用 ngModel $parsers 和 $formatters 向输入添加数字格式。

    【讨论】:

      【解决方案2】:

      您可以为此目的使用number Angular 过滤器:https://docs.angularjs.org/api/ng/filter/number

      【讨论】:

      • 这很完美。但是,我如何将它与 ng-model 一起使用,因为,这将显示数字,但是,我的范围不会在更改时更新。 跨度>
      • 你是对的。不确定,也许除了ng-model 子句之外,您还可以使用ng-value 字段进行初始显示吗?
      • 试过:ng-init="product.price=(product.price|number:3)" 如果输入类型是文本,但我需要将它作为数字。必须提示用户输入数字键盘,而不是文本类型的全键盘。
      【解决方案3】:

      仍然没有答案。据我所知,这是社区内的一个问题,如果输入类型 = 数字,多余的零会被删除。

      【讨论】:

        猜你喜欢
        • 2014-05-03
        • 2013-01-29
        • 1970-01-01
        • 2021-10-30
        • 1970-01-01
        • 2015-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多