js 计算问题求大神

functiontest(a,b){varc=0.00;if(a!=0.00&&b!=0.00){c=(a/b).toFixed(2);}returnc;}如果a或者b为... function test(a,b){
var c = 0.00;
if(a != 0.00&&b!=0.00){
c = (a/b).toFixed(2);
}
return c;
}
如果a或者b为0怎么返回0.00,如果是千位怎么再加上千位分割符

上面写的没用
另外,如果a为1,375.00 b 为0 直接NaN了
求大神帮忙看下
展开
 我来答
暴力de气球
2014-12-09 · TA获得超过133个赞
知道小有建树答主
回答量:90
采纳率:100%
帮助的人:82.8万
展开全部
/**
* 计算两个值的商,结果按照字符串输出,含千分位,含两位小数
* 输入值可以是数字或者字符串
**/
function test(a,b){
//输入全部按照字符串处理,涉及到千分号.
    if(typeof a == "number"){
     a = a.toFixed(2);
}
a = a.toString().replace(/,/,"");
b = b.toString().replace(/,/,""); 

    var c = 0.00; 
    var f_a = parseFloat(a);
    var f_b = parseFloat(b);
    if(f_a == 0 || f_b== 0){
     return "0.00";
    }
    c = (f_a/f_b).toFixed(2);   //已经得到了c
    //下面是处理增加千分号的代码
    var d = [];
    var c_length = c.length;
    //处理小数点后面的输出
    for(var i=0;i<c_length && i<3;i++){
     d.push(c[c_length -1 - i]);
    }
    //处理小数点前面的输出
    for(var i=0;i<c_length-3;i++){
     d.push(c[c_length -4 -i]);
     if(i%3==2){
     d.push(",");
     }
    }
    return  d.reverse().join("");
}  

console.log(test("11,222.00","1.00") == "11,222.00");
console.log(test("11,222.00","2.00") == "5,611.00");
console.log(test("0","0") == "0.00");
console.log(test(0,0) == "0.00");
console.log(test("0","0.00") == "0.00");
console.log(test("0","00") == "0.00");
console.log(test("23.00","23") == "1.00");
console.log(test("23.0000","23") == "1.00");
console.log(test("230.00","23") == "10.00");
console.log(test(230.00,"23") == "10.00");
console.log(test(230.00,23) == "10.00");
console.log(test("1,375.00",0) == "0.00");


测试结果:

D:\>node test.js

true

true

true

true

true

true

true

true

true

true

true

更多追问追答
追问
谢谢哈 ,再请教下

因为我结果要加上%,如果直接把结果乘以100,0.00的时候 直接为0%了,程序里 该怎么改?
追答
function test(a,b){
    ........
    var c = 0.00; 
    var f_a = parseFloat(a);
    var f_b = parseFloat(b);
    if(f_a == 0 || f_b== 0){
     return "0.00%";
    }
    c = (f_a/f_b).toFixed(2);   //已经得到了c
    //下面是处理增加千分号的代码
    var d = ["%"];
    var c_length = c.length;
    //处理小数点后面的输出
    .........
}
vagatablebird
2014-12-09 · TA获得超过1576个赞
知道大有可为答主
回答量:2245
采纳率:83%
帮助的人:458万
展开全部
怎么返回0.00

else c=0;

千位分隔符的话不是应该自动加的么?没有的话,c是只能存储数据的,千位分隔符的话属于文字格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Emma美丽的女孩
2014-12-09 · TA获得超过1052个赞
知道小有建树答主
回答量:897
采纳率:0%
帮助的人:136万
展开全部
没有经历过你的人生的人,他无权来评判你的对与错,好与坏,因为他不是你。他不懂得你内心经历的一切狂风暴雨,更不懂得你的世界里所走过的惊心动魄的时刻。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式