请教一个elementUI与Vue底层逻辑的问题

最近有一个需求是当el-InputNumber输入的值为0,且有设置precision(假设为2)数值精度的情况下,最后输出的值应为0,不为0.00。查看了elementUI的源码,我做了如下修改

toPrecision(num, precision) {
   if (precision === undefined) precision = this.numPrecision;
      //增加的判断条件
      if(num === 0){
          return 0
      }else {
          return parseFloat(Math.round(num * Math.pow(10, precision)) / Math.pow(10, precision));
      }
 },

我在原本的判断函数中做了是否为0的判断,若输入的值为0,则return0,但是当实际操作过后,发现并没有生效。打了断点查看之后发现上面的函数运行时是没问题的,但是当代码走到vue.runtime.esm.js中时,检查到代码只要走到这个函数中,image.png,数值就会被改回去(0变为0.00),请问这个是什么原因呢?

阅读 1.7k
1 个回答

并没有复现你说的问题,是你修改的地方不对
在线示例
我修改的地方

 if (this.precision !== undefined) {
   currentValue = currentValue.toFixed(this.precision);
 }

修改为

if (this.precision !== undefined) {
  if (currentValue !== 0)
    currentValue = currentValue.toFixed(this.precision);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题