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

时间:2016-02-19 19:28:03

标签: angularjs

我有一个ng-model的浮点值,我希望在<input>中始终显示2位小数:

<input ng-model="myNumb" step ="0.01" type="number">

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

中强制显示2位小数

8 个答案:

答案 0 :(得分:63)

AngularJS - Input number with 2 decimal places它可以帮助......  过滤:

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

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

答案 1 :(得分:30)

{{value | number : fractionSize}}

喜欢{{12.52311 | number : 2}}

所以这将打印12.52

答案 2 :(得分:26)

您是否尝试使用过滤器

<input ng-model='val | number: 2'>

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

答案 3 :(得分:19)

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

<ion-input value="{{ exampleNumber | number : '1.2-2' }}"></ion-input>

<强> BREAKDOWN

'1.2-2'表示{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

  • 小数点前最少显示1位数
  • 小数点后至少显示2位数
  • 但不超过2位

到期信用herehere

答案 4 :(得分:3)

(@ maudulus的答案)的另一简写,删除{maxFractionDigits},因为它是可选的。

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

答案 5 :(得分:2)

将数字舍入到小数位的最佳方法是

library(gplots)
file1<- read.csv('Dataset.csv',header = T)
class(file1)
dat <- data.frame(file1)
dim(dat)
names(dat)
head(dat)
rownames(dat) <-dat$Strains
head(dat)
dim(dat)
head(dat)
dat.tdy <- dat[,2:26]
dat.n <- scale(t(dat.tdy))
dat.tn <- t(dat.n)
col = c("black", "grey")
row_names <- rownames(dat.tn)
heatmap.2(dat.tn, scale = "none", Rowv = NA, Colv = NA, col = c("black", "grey"), margin=c(6, 4),trace='none',labRow = row_names,
      lhei=c(1,4),cexRow = 1,cexCol = 1,
      lwid=c(.1,1), keysize=0.1, key.par = list(cex=0.5), sepwidth=c(0.1,0.1),
      sepcolor="white",
      colsep=1:ncol(dat),
      rowsep=1:nrow(dat))

例如;

window.onload = function() {
countDown('my_div1', '<a href="cdtl.html">Hello 1</a>', 720);
}
function countDown(elID, output, seconds) {
var elem = document.getElementById(elID),
    start = new Date().getTime(), end = start+seconds*1000,
    timer = setInterval(function() {
        var now = new Date().getTime(), timeleft = end-now, timeparts;
        if( timeleft < 0) {
            elem.innerHTML = output;
            clearInterval(timer);
        }
        else {
            timeparts = [Math.floor(timeleft/60000),Math.floor(timeleft/1000)%60];
            if( timeparts[1] < 10) timeparts[1] = "0"+timeparts[1];
            elem.innerHTML = "Time left: "+timeparts[0]+":"+timeparts[1];
        }
    },250); // the lower this number, the more accurate the timer. 250 recommended
  }

如果你想要58.90

十进制位数是2

a=parseFloat(Math.round(numbertobeRound*10^decimalplaces)/10^decimalplaces);

答案 6 :(得分:0)

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

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

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

  • 默认显示小数点后至少显示1个整数
  • 在小数点后显示不少于2个整数
  • 在小数点后显示不超过2个整数

答案 7 :(得分:-3)

使用带空符号($)的货币过滤器

{{val | currency:''}}