We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
金额转换,比如:服务端返回 0 > 0.00 0.1 > 0.10 等
function format(v){ if(!v) return '0.00' v = parseFloat(v).toFixed(2); v = v.toString().split('.'); return (+v[0]).toLocaleString() + '.' + (v[1] >= 01 ? v[1] : '00'); }
怎么会这样的啊,-1.1 怎么就不报错呢?
原来在JS中(+‘-0’)返回的是0,而不是-0;原因是()引起了表达式的隐私转换;
不加()的时候+'-0' 返回的还是 -0
那么是不是可以用parseInt呢?parseInt('-0') >> -0 而parseInt(+'-0') >> 0
function format(v){ if(!v) return '0.00' v = parseFloat(v).toFixed(2); v = v.toString().split('.'); return parseInt(v[0]).toLocaleString() + '.' + (v[1] >= 01 ? v[1] : '00'); }
但现实是:这样做还是不行的;
'-0'.toLocaleString() 明明是输出 -0的;
('-0').toLocaleString() 也是 -0
-0..toLocaleString() 也是 -0
为什么parseInt('-0').toLocaleString() 就不是 -0了呢? 这个中间又有哪些不为人知的隐私转换呢?
var num=parseInt('-0') >>> -0 num.toLocaleString() >>0
看上去是toLocaleString的时候发生了什么的错误。
既然错误只发生在-0.x的时候,那个只要检查-0的情况,然后做特殊处理
v[0]==0 && v[0].substr(0,1)=='-'
通过这样一行代码就能识别是 -0了
function format(v){ if(!v) return '0.00' v = parseFloat(v).toFixed(2); v = v.toString().split('.'); return (v[0]==0 && v[0].substr(0,1)=='-'?'-':'')+(+v[0]).toLocaleString() + '.' + (v[1] >= 01 ? v[1] : '00'); }
终于解决了金额转换的bug
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一开始由于服务端返回的金额基本都是大于0的,因此,转换函数是这么写的
用着这个转换函数,一点问题也没有,直到一天,服务端返回了一个小于0的负数,并且是-0.1这样的比较特殊的,经过转换后,返回的是0.10
原来在JS中(+‘-0’)返回的是0,而不是-0;原因是()引起了表达式的隐私转换;
不加()的时候+'-0' 返回的还是 -0
那么是不是可以用parseInt呢?parseInt('-0') >> -0 而parseInt(+'-0') >> 0
看上去是只要把(+v[0]) 改成 parseInt(v[0]) 就好了;
但现实是:这样做还是不行的;
这是什么鬼啊?
为什么parseInt('-0').toLocaleString() 就不是 -0了呢? 这个中间又有哪些不为人知的隐私转换呢?
我们来分解下parseInt('-0').toLocaleString()
看上去是toLocaleString的时候发生了什么的错误。
转换思路,换个方案
既然错误只发生在-0.x的时候,那个只要检查-0的情况,然后做特殊处理
通过这样一行代码就能识别是 -0了
终于解决了金额转换的bug
The text was updated successfully, but these errors were encountered: