avascript 数值
简介:
JavaScript 采用“IEEE 754 标准定义的双精度64位格式表示数字。
javascript Number属性
console.log(Number.EPSILON) //=>表示 1 和大于 1 的最小的浮点数2.220446049250313e-16
console.log(Number.MAX_SAFE_INTEGER) //=>常量表示在 JavaScript 中最大的安全整数9007199254740991
console.log(Number.isSafeInteger(8));//true
console.log(Number.MIN_SAFE_INTEGER);//-9007199254740991
console.log(Number.MIN_VALUE);//5e-324
console.log(Number.NEGATIVE_INFINITY);//负无穷大。-Infinity
console.log(Number.POSITIVE_INFINITY);//正无穷大Infinity
console.log(Number.NaN);//NaN 非数字
javascript Number方法
Number.isFinite(value) 返回一个 布尔值 表示给定的值是否是一个有穷数。
Number.isInteger(value) 返回 判断给定值是否是整数的 Boolean 值。
Number.isNaN(value) 返回一个布尔值,表示给定的值是否是 NaN。
Number.isSafeInteger(testValue) 返回 一个布尔值 表示给定的值是否是一个安全整数(safe integer)。
numObj.toFixed(digits) 返回所给数值的定点数表示法的字符串形式。 digits数点后数字的个数;介于 0 到 20 (包括)之间 默认为 0
Number.parseFloat(string) 返回给定值被解析成浮点数,如果无法被解析成浮点数,则返回NaN
Number.parseInt(string[, radix]) radix基数 可以根据给定的进制数把一个字符串解析成整数。
js的进制的转换
//进制的转换
var num = 150;
/*
* 十进制转换成二进制,八进制,十六进制,十进制
* */
console.log(num.toString(2));
console.log(num.toString(8));
console.log(num.toString(10));
console.log(num.toString(16));
/*
* 将十进制转换成其二进制,八进制,十六进制,十进制
* */
console.log(parseInt(10010110,2));
console.log(parseInt(226,8));
console.log(parseInt(150,10));
console.log(parseInt(96,16));
结果:
10010110
226
150
96
150
150
150
150
1
2
3
4
5
6
7
8
js 所能表示的最大整数
Math.pow(2, 53)
//2的53次方
结果:9007199254740992
console.log(Math.pow(2, 53));
console.log(Math.pow(2, 53)+1);
结果:9007199254740992
9007199254740992
Number的精度共十六位,超出这个说+1也会造成精度不准确
Math.pow(2, 53)+1 ===9007199254740992
同理parseInt()将字符串转换成整形也不能超出这个数
var str = '9007199254740993';
console.log(parseInt(str));
结果:9007199254740992
所以在前后台交互中将超过这个数据的值转为字符串处理
js math,number操作
js 数字
var num = 126.2365892224;
console.log(num.toFixed(2));
console.log(num.toExponential(2));
console.log(num.toPrecision(2));
console.log(parseInt(num));
console.log(parseFloat(num));
console.log(Number(num));
1. Math 对象
1.1 介绍
Math 对象,是数学对象,提供对数据的数学计算,如:获取绝对值、向上取整等。无构造函数,无法被初始化,只提供静态属性和方法。
1.2 构造函数
无 :Math 对象无构造函数,无法被初始化,只提供静态属性和方法。
1.3 静态属性
1.3.1 Math.E :常量e。返回自然对数的底数:2.718281828459045
1.3.2 Math.PI :常量π。返回圆周率的值 :3.141592653589793
1.4 静态方法
**1.4.1 Math.sin(value) :**正弦函数
**1.4.2 Math.cos(value)** **:**余弦函数
**1.4.3 Math.tan(value) :**正切函数
**1.4.4 Math.asin(value) :**反正弦函数
**1.4.5 Math.acos(value) :**反余弦函数
**1.4.6 Math.atan(value) :**反正切函数
1.4.7 Math.abs(value) :返回绝对值
参数:
①value {Number | NumberStr} :数字或者纯数字的字符串。
返回值:
{Number} 返回参数的绝对值数字。若参数不为数字,返回NaN。
示例:
Math.abs(``'123'``); ``// => 123 :纯数字字符串
Math.abs(``'-123'``); ``// => 123
Math.abs(123); ``// => 123
Math.abs(-123); ``// => 123
Math.abs(``'123a'``); ``// => NaN :非纯数字字符串
1.4.8 Math.ceil(value) : 对一个数向上取整,并不是四舍五入
参数:
①value {Number | NumberStr} :数字或者纯数字的字符串。
返回值:
{Number} 返回取整后的值。若参数不为数字,返回NaN。
示例:
Math.ceil(2.7); ``// => 3
Math.ceil(2.3); ``// => 3 :2.3 向上取整返回 3
Math.ceil(-2.7); ``// => -2
Math.ceil(-2.3); ``// => -2
Math.ceil(``'2.7'``); ``// => 3 :纯数字字符串
Math.ceil(``'2.7a'``); ``// => NaN :非纯数字字符串
1.4.9 Math.floor(value) :对一个数向下取整,并不是四舍五入
参数:
①value {Number | NumberStr} :数字或者纯数字的字符串。
返回值:
{Number} 返回取整后的值。若参数不为数字,返回NaN。
示例:
Math.floor(2.7); ``// => 2
Math.floor(2.3); ``// => 2
Math.floor(-2.7); ``// => -3 :-2.7 向下取整返回 -3
Math.floor(-2.3); ``// => -3
Math.floor(``'2.7'``); ``// => 2 :纯数字字符串
Math.floor(``'2.7a'``); ``// => NaN :非纯数字字符串
1.4.10 Math.max(value1,value2...valueN) :返回参数中最大的值
参数:
①value1,value2.....valueN {Number | NumberStr} :数字或者纯数字的字符串。
返回值:
{Number} 返回最大值。若一个参数不为数字,返回NaN。
示例:
Math.max(1, 2, 3, 4, 5); ``// => 5
Math.max(1, 2, 3, 4, ``'5'
); ``// => 5
Math.max(1, 2, 3, 4, ``'a'``); ``// => NaN
1.4.11 Math.min(value1,value2...valueN) :返回参数中最小的值
参数:
①value1,value2.....valueN {Number | NumberStr} :数字或者纯数字的字符串。
返回值:
{Number} 返回最大值。若一个参数不为数字,返回NaN。
示例:
Math.min(1, 2, 3, 4, 5); ``// => 1
Math.min(``'1'``, 2, 3, 4, 5); ``// => 1
Math.min(1, 2, 3, 4, ``'a'``); ``// => NaN
1.4.12 Math.pow(x,y) :返回x的y次方
参数:
①x {Number | NumberStr} :数字或者纯数字的字符串。
②y {Number | NumberStr} :数字或者纯数字的字符串。
返回值:
{Number} 返回x的y次方。若一个参数不为数字,返回NaN。
示例:
Math.pow(2, 3); ``// => 8 :2的3次方
Math.pow(3, 2); ``// => 9 :3的2次方
Math.pow(``'4'``, 2); ``// => 16 :4的2次方
Math.pow(``'2a'``, 2); ``// => NaN
1.4.13 Math.random() :返回一个伪随机数,大于0,小于1.0
参数:无
返回值:
{Number} 返回一个伪随机数,大于0,小于1.0
示例:
Math.random(); ``// => 0.8982374747283757
Math.random(); ``// => 0.39617531932890415
Math.random(); ``// => 0.35413061641156673
Math.random(); ``// => 0.054441051790490746
1.4.14 Math.round(value) : 四舍五入后取整
参数:
①value {Number | NumberStr} :数字或者纯数字的字符串。
返回值:
{Integer} 返回参数四舍五入后的整数。若参数不为数字,返回NaN。
示例:
Math.round(2.5); ``// => 3
Math.round(2.4); ``// => 2
Math.round(-2.6); ``// => -3
Math.round(-2.5); ``// => -2 :-2.5四舍五入为 -2
Math.round(-2.4); ``// => -2
Math.round(``'2.7'``); ``// => 3 :纯数字字符串
Math.round(``'2.7a'``); ``// => NaN :非纯数字字符串
1.4.15 Math.sqrt(value) :返回参数的平方根
参数:
①value {Number | NumberStr} :数字或者纯数字的字符串
返回值:
{Number} 返回参数的平方根
示例:
console.log( Math.sqrt(9) ); ``// => 3
console.log( Math.sqrt(16) ); ``// => 4
console.log( Math.sqrt(``'25'``) ); ``// => 5
console.log( Math.sqrt(``'a'``) ); ``// => NaN
2. Number 对象
2.1 介绍
Number 对象,是数字对象,包含js中的整数、浮点数等等。
2.2 定义
var
a = 1;
var
b = 1.1;
2.3 静态属性
2.3.1 Number.MAX_VALUE :表示JS中最大的数字,约为 1.79e+308
2.3.2 Number.MIN_VALUE :表示JS中最小的数字,约为 5e-324
2.3.3 Number.NaN :返回NaN,表示非数字值,与任意其他数字不等,也包括NaN本身。应使用Number.isNaN() 来进行判断。
2.3.4 Number.NEGATIVE_INFINITY :返回 -Infinity ,表示负无穷。
2.3.5 Number.POSITIVE_INFINITY :返回 Infinity ,表示正无穷。进行计算的值大于Number.MAX_VALUE就返回 Infinity 。
2.4 静态方法
2.4.1 Number.isInteger(value) :判断参数是否为整数
参数:
①value {Number} :数字
返回值:
{Boolean} 返回参数是否为整数 。纯整数的字符串也返回false。
示例:
Number.isInteger(1); ``// => true
Number.isInteger(1.1); ``// => false
Number.isInteger(``'1'``); ``// => false :纯整数的字符串也返回false
Number.isInteger(``'1.1'``); ``// => false
Number.isInteger(``'a'``); ``// => false :非字符串返回false
2.4.2 Number.isNaN(value) :判断参数是否为NaN
参数:
①value {Object} :任意类型
返回值:
{Boolean} 返回参数是否为NaN 。
示例:
Number.isNaN(NaN); ``// => true
Number.isNaN(``'NaN'``); ``// => false :'NaN'字符串,并不为NaN
Number.isNaN(1); ``// => false
Number.isNaN(``'1'``); ``// => false
2.4.3 Number.parseFloat(value) :把参数转换为浮点数
参数:
①value {Number | NumberStr} :数字或者纯数字的字符串
返回值:
{Integer | Float} 返回整数或浮点数数值
示例:
Number.parseFloat(1); ``// => 1 :整数还是返回整数
Number.parseFloat(1.1); ``// => 1.1
Number.parseFloat(``'1aaa'``); ``// => 1 :字符串前面为数字的,只返回数字
Number.parseFloat(``'1.1aaa'``); ``// => 1.1
Number.parseFloat(``'a1'``); ``// => NaN :非数字开头,返回NaN
Number.parseFloat(``'a'``); ``// => NaN
2.4.4 Number.parseInt(value) :把参数转换为整数
参数:
①value {Number | NumberStr} :数字或者纯数字的字符串
返回值:
{Integer} 返回整数数值
示例:
Number.parseInt(1); ``// => 1
Number.parseInt(1.1); ``// => 1 :浮点数返回整数
Number.parseInt(``'1aaa'``); ``// => 1 :字符串前面为数字的,只返回数字
Number.parseInt(``'1.1aaa'``); ``// => 1
Number.parseInt(``'a1'``); ``// => NaN :非数字开头,返回NaN
Number.parseInt(``'a'``); ``// => NaN
2.5 实例方法
2.5.1 toExponential(value) :将一个数字转为指数类型,参数表示小数点后的位数
参数:
①value {Number} :表示小数点后的位数
返回值:
{String} 返回转换后的指数类型字符串
示例:
(123456789).toExponential(2); ``// => 1.23e+8 :小数点2位
(123456789).toExponential(5); ``// => 1.23457e+8 :小数点5位
(123456789).toExponential(10); ``// => 1.2345678900e+8 :小数点10位,不足位数用0补位
2.5.2 toFixed(value) :将一个数字转换为指定小数位数的字符串。不传入参数,就是没小数位。返回值为四舍五入
参数:
①value {Number} :表示小数点后的位数
返回值:
{String} 返回转换后的字符串;不够小数位以0填充;返回值为四舍五入后的值
示例:
console.log((1).toFixed(2)); ``// => 1.00
console.log((1.2).toFixed(2)); ``// => 1.20 :不足位数,以0补位
console.log((1.277).toFixed(2)); ``// => 1.28 :进行了四舍五入
2.5.3 toString() :使用指定的进制,将一个数字转换为字符串。不传入参数,默认为十进制。
参数:
①value {Number} :表示进制数,取值范围:2到36
返回值:
{String} 转换后进制的字符串
示例:
(10).toString(); ``// => 10 :默认为十进制
(10).toString(2); ``// => 1010 :二进制
(10).toString(10); ``// => 10 :十进制
(10).toString(16); ``// => a :十六进制
2.6 应用场景
2.6.1 浮点数的加减乘除异常
说明:Js中的2个浮点数进行加减乘除运算,会返回异常的数值,如:0.2+0.7,返回0.899999999999。可以使用toFixed()方法,指定小数位。
示例:
console.log(0.2 + 0.7); ``// => 0.8999999999999999
console.log(0.7 - 0.5); ``// => 0.19999999999999996
console.log(3.03 * 10); ``// => 30.299999999999997
// 使用toFixed()方法
console.log( (0.2 + 0.7).toFixed(2) ); ``// => 0.90
console.log( (0.7 - 0.5).toFixed(2) ); ``// => 0.20
console.log( (3.03 * 10).toFixed(2) ); ``// => 30.30
2.6.2 减法运算
说明:Js中进行减法运算时,会先把前后的值转换为数值再进行运算。若转换失败,返回NaN。
示例:
console.log(``'1'
- 0); ``// => 1 :纯数字字符串减去0,可以快速转换为Nubmer对象
console.log( (``'1'
- 0).toFixed(2) ); ``// => 1.00 :快速转换为Nubmer对象后调用实例方法
console.log(``'1'
- ``'a'``); ``// => NaN :一方无法转换为Nubmer对象