数字的中文能装换为数字吗

格式是十一这种要转成11,除了if判断拼接还有其他更简单的办法吗

FineReport 檬茶茶 发布于 2021-12-11 09:47
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于2021-12-11 11:04

可以通过写js实现

var a=this.options.form.getWidgetByName("td").getValue();

var chnNumChar = {

  零:0,

  一:1,

  二:2,

  三:3,

  四:4,

  五:5,

  六:6,

  七:7,

  八:8,

  九:9

};

var chnNameValue = {

  十:{value:10, secUnit:false},

  百:{value:100, secUnit:false},

  千:{value:1000, secUnit:false},

  万:{value:10000, secUnit:true},

  亿:{value:100000000, secUnit:true}

}

function ChineseToNumber(chnStr){

  var rtn = 0;

  var section = 0;

  var number = 0;

  var secUnit = false;

  var str = chnStr.split('');

 

  for(var i = 0; i < str.length; i++){

    var num = chnNumChar[str[i]];

    if(typeof num !== 'undefined'){

      number = num;

      if(i === str.length - 1){

        section += number;

      }

    }else{

      var unit = chnNameValue[str[i]].value;

      secUnit = chnNameValue[str[i]].secUnit;

      if(secUnit){

        section = (section + number) * unit;

        rtn += section;

        section = 0;

      }else{

        section += (number * unit);

      }

      number = 0;

    }

  }

  return rtn + section;

}

alert(ChineseToNumber(a));

image.png

image.png

  • 檬茶茶 檬茶茶(提问者) 几十万都能转吗
    2021-12-13 08:25 
  • snrtuemc snrtuemc 回复 檬茶茶(提问者) 只要是数值文字,上亿都没有问题
    2021-12-13 08:27 
最佳回答
0
北纬六十六度Lv4初级互助
发布于2021-12-11 10:03

还可以建个字典表

最佳回答
0
twsheLv6初级互助
发布于2021-12-11 10:08

SWITCH(单元格,"十一","11","十二","12","十三","13")

要几个,就写几个了

还有替换的REPLACE(单元格,"十二","12")

  • 檬茶茶 檬茶茶(提问者) 也是判断,而且几十万几百万也要转换的话这样做就不现实了
    2021-12-11 10:52 
  • twshe twshe 回复 檬茶茶(提问者) 把万转成*10000 千转成*1000 百转成*100 然后公式从新计算下,不就OK了
    2021-12-11 14:07 
  • 5关注人数
  • 542浏览人数
  • 最后回答于:2021-12-11 11:04
    请选择关闭问题的原因
    确定 取消
    返回顶部