在jquery

时间:2017-02-24 05:33:42

标签: jquery

我试图在jquery中将十进制数转换为二进制但不能

         var n = 5;
         var  i = 1;
         var rem = 0;
         var binary = 0;

    while (n!=0) 
     {
       rem= n % 2;
       n= n / 2;
       binary = binary + rem * i;
       i= i * 10;
   }
   alert(binary);

我在c++等其他编程语言中使用了相同的公式将十进制转换为二进制,并且它的工作正常,但它在这里提供infinity error

DEMO

2 个答案:

答案 0 :(得分:1)

除法后将其转换为整数,否则可能导致无限循环,因为在某些情况下它不会达到0(数字可能包含小数部分)。

n= parseInt(n / 2, 10);

答案 1 :(得分:0)

这里的问题是

 n = n / 2;

因为在JavaScript(jQuery)中,除法返回一个浮点数,而不是整数。

所以你有2.5,然后1.25,0.625,0.3125,等等,所以你的条件不满意。

为了避免这种情况,你只需要解析float结果的整数

n = parseInt(n / 2);