Angularjs 在<;中始终显示小数点后两位的数字;输入>;

Angularjs 在<;中始终显示小数点后两位的数字;输入>;,angularjs,Angularjs,我有一个ng型号的浮点值,我希望总是在中显示2位小数: <input ng-model="myNumb" step ="0.01" type="number"> 在大多数情况下,当“myNumb”有小数点时,这种方法都有效。但若“MyNum”的小数位数小于2位(3.2),或整数(30),则不会强制显示2位小数 如何强制在字段中显示2位小数点,这将有助于。。。 筛选: 设置正则表达式以使用ng模式验证输入。在这里,我只接受最大小数点后2位和带点分隔符的数字 下一个答案指出了这

我有一个ng型号的浮点值,我希望总是在
中显示2位小数:

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

在大多数情况下,当“myNumb”有小数点时,这种方法都有效。但若“MyNum”的小数位数小于2位(3.2),或整数(30),则不会强制显示2位小数
如何强制在
字段中显示2位小数点,这将有助于。。。 筛选:

  • 设置正则表达式以使用ng模式验证输入。在这里,我只接受最大小数点后2位和带点分隔符的数字
  • 
    

    下一个答案指出了这一点。

    您是否尝试使用过滤器

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

    使用带有空符号($)的货币筛选器

    比如
    {{12.52311 | number:2}


    因此,如果您使用Angular 2(显然它也适用于Angular 4),这将打印
    12.52

    ,您可以使用以下命令将小数点四舍五入到两位
    {exampleNumber | number:'1.2-2'}}
    ,如下所示:

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

    细分

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

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

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


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

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

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

    numbertobeRound=58.8965896589;
    
    如果你想要58.90

    小数位数是2

    a=parseFloat(Math.round(58.8965896589*10^2)/10^2);
    

    只需使用数字管道,如下所示:

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

    上述管道的工作原理如下:

    • 默认情况下,小数点前至少显示1个整数
    • 小数点后显示不少于2个整数
    • 小数点后显示的整数位数不超过2位

    由于具有type=“number”,如果我执行固定(2),它将抛出一个错误:(这实际上不起作用,因为我正在使用它将抛出一个错误。我不能使用type=“number”在这种情况下,您不能在Angular中执行此操作,ng模型只接受可分配表达式…请参阅ng模型中的以下链接您不能使用筛选器它显示非分配错误这实际上不起作用,因为我使用此选项将抛出错误。我不能使用type=“number”在这个案例中,我没有考虑这个问题,因为我认为在上下文中拥有它是更好的,但是再一次,你是正确的。它显示“1”而不是“1”,它不起作用。它检查输入不超过2小数,但是不改变显示的数字来显示2小数(即使那些是0)。你能提供一个JSFIDLE吗?正如@jcc在下面指出的,你不能在ng模型中使用过滤器。这对我不起作用。其他地方提到过,但这不起作用,因为
    类型的
    输入
    需要一个
    数字
    作为它的值,但是角度
    数字
    过滤器返回一个
    字符串G尝试使用
    输入
    键入
    文本
    实际上只是回避了这个问题。您好,欢迎来到StackOverflow!请查看您的答案并编辑它。请查看angular.js的答案,它是angular的旧版本
    a=parseFloat(Math.round(numbertobeRound*10^decimalplaces)/10^decimalplaces);
    
    numbertobeRound=58.8965896589;
    
    a=parseFloat(Math.round(58.8965896589*10^2)/10^2);