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

发布于 2022-09-13 00:17:21 字数 618 浏览 30 评论 0

最近有一个需求是当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),请问这个是什么原因呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一紙繁鸢 2022-09-20 00:17:21

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

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

修改为

if (this.precision !== undefined) {
  if (currentValue !== 0)
    currentValue = currentValue.toFixed(this.precision);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文