zoukankan      html  css  js  c++  java
  • 数字0和字符串类型的0的区别(坑位)

    案例:限制本周接单金额为必填且不能小于0

    1.数字0

    vm.receiptMoney = 0
    
    console.log(typeof vm.receiptMoney)//number
    console.log(!vm.receiptMoney)//true
    console.log((parseFloat(vm.receiptMoney)<0))//false
    if(!vm.receiptMoney||(parseFloat(vm.receiptMoney)<0)){
        Message({message: '本周接单金额为必填项,且不能小于0!',type: 'warning'});
        return false;
    }
    2.字符串类型的0
    vm.receiptMoney = 0
    
    console.log(typeof vm.receiptMoney)//string
    console.log(!vm.receiptMoney)//false
    console.log((parseFloat(vm.receiptMoney)<0))//false
    if(!vm.receiptMoney||(parseFloat(vm.receiptMoney)<0)){
        Message({message: '本周接单金额为必填项,且不能小于0!',type: 'warning'});
        return false;
    }
    

     比较:Number类型的0,取反时就说true; String类型的0,取反时就说false;显然1中数字0中并不是想要的结果,而编辑单据的时候,后台返回的是一个Number类型的0

        导致Number类型的0判断成未填写状态,出现判断出错,

        而重新编辑成0就不会出现错误,因为编辑后的0是String类型的0;如果不编辑就是默认后台传过来的Number类型的0,导致出现判断错误

     处理:先将后台返回回来的Number类型的0转成String类型的0,即:vm.receiptMoney = resData.receiptMoney  +  ' '

  • 相关阅读:
    BZOJ 4318: OSU!
    BZOJ 3450: Tyvj1952 Easy
    BZOJ 1426: 收集邮票
    BZOJ 1415: [Noi2005]聪聪和可可
    BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
    BZOJ 3270: 博物馆
    BZOJ 3143: [Hnoi2013]游走
    BZOJ 3166: [Heoi2013]Alo
    BZOJ 3261: 最大异或和
    BZOJ 1022: [SHOI2008]小约翰的游戏John
  • 原文地址:https://www.cnblogs.com/cx709452428/p/10625561.html
Copyright © 2011-2022 走看看