当前位置: 首页 > 面试题库 >

角指令舍入十进制数

后化
2023-03-14
问题内容

Angular是否具有内置指令来舍入输入值?

在这种情况下,数字过滤器不合适,因为我也想val在ng-model中也舍入实际值。如果我必须写一个,那会是什么样?


问题答案:

您可以使用指令创建双向绑定转换。这是一个简单的例子:

app.directive('roundConverter', function() {
  return {
    restrict: 'A',
    require: 'ngModel',
    link: function(scope, elem, attrs, ngModelCtrl) {
      function roundNumber(val) {
        var parsed = parseFloat(val, 10);
        if(parsed !== parsed) { return null; } // check for NaN
        var rounded = Math.round(parsed);
        return rounded;
      }
      // Parsers take the view value and convert it to a model value.
      ngModelCtrl.$parsers.push(roundNumber);
   }
 };
});

http://plnkr.co/edit/kz5QWIloxnd89RKtfkuE?p=preview

这实际上取决于您希望它如何工作。是否应该限制用户输入?您介意模型和视图值有所不同吗?模型上的无效数字输入应该为空吗?这些都是您要做出的决定。上面的指令会将无效数字转换为null。



 类似资料:
  • 我想设置两个BigDecimal数字和的比例。如本例所示: 当我运行时,我有一个例外: 为什么四舍五入是必要的?如果我不想让周围,什么是解决方案? 谢谢

  • 5、十进制数加调整指令DAA(Decimal Adjust After Addition) 该指令是用于调整AL的值,该值是由指令ADD或ADC运算二个压缩型BCD码所得到的结果。压缩型BCD码是一个字节存放二个BCD码,低四位和高四位都是一个BCD码。 其调整规则如下: 、如果AL的低四位大于9,或标志位AF=1,那么,AL=AL+6,并置AF=1; 、如果AL的高四位大于9,或CF=1,那么,

  • 问题内容: 我试图将十进制数字截断到小数位。像这样: 所做的只是正确的事情,但是却舍入了价值。我不需要四舍五入的价值。希望这是可能的JavaScript。 问题答案: 更新 : 因此,无论如何,四舍五入的bug总是会困扰着您,无论您如何努力补偿它们。因此,应该通过精确地用十进制表示法来解决该问题。 旧的易出错的解决方案基于其他人的编译:

  • 本文向大家介绍如何停止对MySQL十进制字段进行舍入?,包括了如何停止对MySQL十进制字段进行舍入?的使用技巧和注意事项,需要的朋友参考一下 您可以借助函数停止对十进制字段进行四舍五入。这是四舍五入的十进制字段的演示。对于我们的示例,让我们首先创建一个演示表 使用insert命令在表中插入一些记录。查询如下- 使用select语句显示表中的所有记录。查询如下- 以下是输出 在上面的示例输出中,小

  • 我正在尝试用Java对BigDecimal进行四舍五入。下面是我执行的代码 因此,对于我的使用情形,输出为prec1 = 49.32和prec2 = 49.33,我需要始终舍入到49.33,那么除了设置两次比例之外,还有其他舍入到49.33的方法吗?

  • 问题内容: 我在MySQL中有一个表,该表的字段为小数,长度为9,无符号。我用它来定价。 在插入数据并查询之后,所有数据均已四舍五入,小数点已删除。 我对为什么感到困惑。 故障排除技巧? 主持人 :web.com phpMyAdmin版本 :2.11.10.1 MySQL客户端版本 :5.0.95 问题答案: MySQL中的小数类型有两个调整旋钮:精度和小数位数。您省略了小数位,因此默认为0。 文