javascript计算两个整数之差 js判断两个数是否都为数字?

[更新]
·
·
分类:互联网
2411 阅读

javascript计算两个整数之差

js判断两个数是否都为数字?

js判断两个数是否都为数字?

/**
*判断是否是数字
*
**/
function isRealNum(val){
// isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除,
  if(val #34#34 || val null){
return false
  }
if(!isNaN(val)){    
  //对于空数组和只有一个数值成员的数组或全是数字组成的字符串,isNaN返回false,例如:#39123#39、[]、[2]、[#39123#39],isNaN返回false, //所以如果不需要val包含这些特殊情况,则这个判断改写为if(!isNaN(val) ampamp typeof val #39number#39 )
    return true   } else{     return false   } }

通过javascript找出0-400亿中所有1的个数,有哪些方法可以实现?

设n位数中包含的数字1个数为f(n),有:
f(1)1
f(2)10 10*1
f(n)10^(n-1) 10*f(n-1)
100亿位时并没有算完f(11),到400亿结束公式为:10^10 2*f(10)[200亿和300亿包含的两个f(10),400亿只有这一个数并不包含数字1]
这只是数学部分,接下来说语言部分,目前大部分js引擎支持的最大数是2^1024,大概是1.7976931348623157e 308,完全可以表达上述公式计算出来的值,于是设计递归函数(手机不方便,伪代码随便写写)function recursFun(x){if(xlt1)return 0if(x gt1)return Math.pow(10,x-1) 10*recursFun(x-1)else if(1x)return 1}
var result Math.pow(10,10) 2*recursFun(10)
结果30000000000

40000000000可以理解成0~3,0~9,0~9,0~9,0~9,0~9,0~9,0~9,0~9,0~9,0~9这十一个数组。然后随意合成你要的数吧。别忘了在数字和字符串之间的转换。另外也不用分这么多段,分成六段就好,0~4,0~99,0~99,0~99,0~99,0~99。别忘了自己写一个补零函数。如果你是为了管理400亿个编号对应的资料,你还要在存储资料时对资料以分段数组的形式进行分组。