Angular如何在<input>中始终显示2位小数

WAB*_*111 63 angularjs

我有一个ng-model的浮点值,我想在下面的两个小数位显示<input>:

<input ng-model="myNumb" step ="0.01" type="number">
Run Code Online (Sandbox Code Playgroud)

当"myNumb"具有小数时,这适用于大多数情况.但是如果"myNumb"小于2位小数(3.2)或整数(30),它不会强制显示2位小数
如何强制在<input>字段中显示2位小数

DIE*_*CAL 68

AngularJS - 输入数字,带2个小数位,可以帮助...过滤:

  1. 设置正则表达式以使用ng-pattern验证输入.在这里,我想只接受最多2个小数位的数字和一个点分隔符.
<input type="number" name="myDecimal" placeholder="Decimal" ng-model="myDecimal | number : 2" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" step="0.01" />
Run Code Online (Sandbox Code Playgroud)

向前看这是指向下一个答案ng-model ="myDecimal | number:2".

  • 你能提供一个jsfiddle吗?正如@jcc在下面指出的那样,你不能在ng-model中使用过滤器.对我不起作用. (8认同)
  • 这不起作用.它检查输入是否不超过2位小数,但不更改显示的数字以显示2位小数(即使它们为0) (3认同)
  • 显示"1"而不是"1.00" (2认同)
  • 在其他地方已经提到过,但这不起作用,因为类型为“number”的“input”需要一个“Number”作为它的值,但有角度的“number”过滤器返回一个“String”。建议将 `input` 类型设为 `text` 实际上只是在回避这个问题。 (2认同)

Ash*_*rne 39

{{value | number : fractionSize}}
Run Code Online (Sandbox Code Playgroud)

喜欢 {{12.52311 | number : 2}}

所以这将打印 12.52

  • 它适用于 angular.js,它是 Angular 的旧版本 (6认同)

mau*_*lus 33

如果您使用的是Angular 2(显然它也适用于Angular 4),您可以使用以下内容舍入到两个小数位{{ exampleNumber | number : '1.2-2' }},如:

<ion-input value="{{ exampleNumber | number : '1.2-2' }}"></ion-input>
Run Code Online (Sandbox Code Playgroud)

分解

'1.2-2'意思是{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}:

  • 小数点前至少显示1位数字
  • 它将在小数点后显示至少2位数
  • 但不超过2位数

这里这里的信用到期


Val*_*ter 26

你尝试使用过滤器吗?

<input ng-model='val | number: 2'>
Run Code Online (Sandbox Code Playgroud)

https://docs.angularjs.org/api/ng/filter/number

  • 你不能在Angular中做到这一点,ng-model只接受可赋值的表达式... https://docs.angularjs.org/error/ngModel/nonassign (14认同)
  • 这实际上是行不通的,因为我使用<input type ="number">这会抛出错误.在这种情况下我不能使用type ="number" (4认同)
  • 在ng-model中你不能使用过滤器显示非分配错误 (3认同)

Mwi*_*iza 7

像这样简单地使用数字管道:

{{ numberValue | number : '.2-2'}}

上面的管道的工作方式如下:

  • 显示小数点前至少1个整数,默认设置
  • 小数点后显示不少于2个整数
  • 小数点后显示不超过2个整数


Tat*_*rin 5

(@maudulus 的回答)的另一个速记要删除,{maxFractionDigits}因为它是可选的。

您可以使用 {{numberExample | number : '1.2'}}