为了账号安全,请及时绑定邮箱和手机立即绑定

字符串中的某个指定位置为数字,这个数字可以进行加减吗

/ 猿问

字符串中的某个指定位置为数字,这个数字可以进行加减吗

qq_控心_0 2017-07-12 11:42:55

如题,就是把字符串中的某个数字进行加减后,得到的结果放回字符串中原位置上。不知道我形容的能不能理解。。。
eg:130.435188167
我要把.后面的第三位的数字减2 ,也就是我需要结果为130.433188167

查看完整描述

3 回答

已采纳
?
如果不能解决你的问题丶我会惭愧
//    参数介绍:
//    beSub:被减数,必须是字符串,因为要进行分割;
//    sub:减数;
//    n:小数位的第几位
    function dataHandle(beSub, sub, n){
        var result;
//        取出整数部分
        var intPart = beSub.split('.')[0];
//        取出小数部分
        var floPart = beSub.split('.')[1].split('');
//        取出小数部分第n位
        var fNum = floPart[n-1];
//        可以在这里对fNum进行判断处理逻辑,例如:
        if(fNum > 0){
            floPart[n-1]= fNum - sub;
            floPart = String(floPart.join(""));
            result = intPart+"."+ floPart;
            return result;
        }else {
            return
        }
    }

//调用示例
    console.log(dataHandle("104.0743233555",2,3));
    上班时间写的,如有不懂,尽管问。
    加油!


查看完整回答
反对 回复 2017-07-14
  • qq_控心_0
    qq_控心_0
    抱歉,好久没来了。请问下,取出小数部分前面的split('.')[1]的作用是? 还有fNum大于0,严格说是大于等于3吧?因为考虑到减去的数值3,比3小的话要向前借一位。 不过还是很感谢你的帮助
?
__innocence

对于小数的计算,想要得到精确的值,最好分割一下。

console.log(11.3-10.1);
会出现不是你期望的值


查看完整回答
反对 回复 2017-07-12
  • qq_控心_0
    qq_控心_0
    我觉得提取出来进行运算再把之前的替换掉,这样麻不麻烦? 有没有更好的办法?
  • __innocence
    __innocence
    如果你对正则表达式很了解,就很快了。有一个replace方法。
  • qq_控心_0
    qq_控心_0
    他是指定字符然后替换吧,我是要指定位置,就是.后面的第三位,可以实现吗
点击展开后面1
?
仙士可

你直接130.435188167-0.002不行么,数学不好啊你

查看完整回答
反对 回复 2017-07-12
  • qq_控心_0
    qq_控心_0
    。。。对,一个直接可以,我之所以说字符串,是因为他是这样组成的 104.615849646,30.1837581876667 104.73816466767,30.186761887667…… 这种类型的很长一段,你觉得我要一个一个的去减吗。。。
  • __innocence
    __innocence
    你想当然地认为直接减? console.log(11.3-10.1); 算一个试试
  • 仙士可
    仙士可
    字符串切割成一小个一小个的split,可以先把小数之后的数字切割出来,然后通过split切割出来的数组,一一对应小数点之后的某个位置,例如 先切割小数点位置,区别整数和小数 var str = '121.0123456871'; var arr = str.split('.'); 得到一个数组 ["121", "0123456871"] 然后分割小数位 var num= arr[1].split('');//不传参默认全部分割; 得到["0", "1", "2", "3", "4", "5", "6", "8", "7", "1"] 这样子就会了吧

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信