ES6-数字操作,判断是否是整数,判断最大值最小值
程序员文章站
2022-04-29 18:05:16
S中只有一种类型数,即64位(1bit 的符号位,11bits 的指数部分 ,以及52bits 的小数部分)双精度浮点数,当整数数值过大时,就会发生精度丢失。 所谓安全整数即能够唯一确定的数字,即能够使用64位二进制数唯一确定的整数。考虑253,转换成对应表示方式后其小数部分总共包括53位,发生了精 ......
- s中只有一种类型数,即64位(1bit 的符号位,11bits 的指数部分 ,以及52bits 的小数部分)双精度浮点数,当整数数值过大时,就会发生精度丢失。
- 所谓安全整数即能够唯一确定的数字,即能够使用64位二进制数唯一确定的整数。考虑253,转换成对应表示方式后其小数部分总共包括53位,发生了精度丢失,所以在js中无法区别253与2^53+1;
- 安全整数与js是否能够正确进行运算关系密切,当运算数与运算结果都处于安全整数的范围内时,才能保证js运算结果正确。
es6之数字操作
// 声明一个二进制 (binary) let binary = 0b010101; document.write(binary) //21 // 声明八进制 octal let octal = 0o666; document.write(octal) //438 let a = 11/4; //es6数字的判断都放在了number中 // isfinite() 函数用来判断被传入的参数值是否为一个有限数值(finite number) // 整数浮点型都为true console.log(number.isfinite(a)); //true console.log(number.isfinite('ananiah')); //false console.log(number.isfinite(nan)); //false console.log(number.isfinite(undefined)); //false //nan console.log(number.isfinite(1)) // 判断是否是整数 isinteger let anania = 123.1; console.log(number.isinteger(anania)) //false console.log(number.parseint(anania)) //123 console.log(number.parsefloat(anania)) //123.1 //2 的53次方是最大值 最大值减一为计算机安全值 let ananiah = math.pow(2,53)-1; //最小值 let minananiah = -math.pow(2,53)-1; console.log(ananiah) //9007199254740991 console.log(minananiah) //-9007199254740992 console.log(number.max_safe_integer) //9007199254740991 最大值 console.log(number.min_safe_integer) //-9007199254740991 最小值 console.log(number.issafeinteger(ananiah)) // true 判断是否是安全整数