一 数字类型的数据需要注意的问题

1. JavaScript 浮点数运算的精度问题(重要!)

JavaScript 中整数和浮点数都属于 Number 数据类型,所有数字都是以 64 位浮点数形式储存,即便整数也是如此。

在一些特殊的数值表示与计算中,例如金额(和钱相关的开发点都应该高度重视!),js 的 Number的就可能出问题。

比如: 1.01*100 就可能出现和显示 101.0000000000001

所以金额等精度很重要的数据的加减乘除,以及小数的运算都不要直接使用js的 + - * / ,而要单独使用一套方法(以字符串的方式进行处理),具体参考下文

JavaScript 浮点数运算的精度问题 http://www.css88.com/archives/7340

二 数字类型数据常用方法

1. 取整

Math.ceil() === 向上取整

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/ceil

Math.floor() === 向下取整

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/floor

2. 浮点数转整数 parseInt()

parseInt(string, radix)

参数 string 必需。要被解析的字符串。 radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

例子

parseInt("10");            //返回 10
parseInt("19",10);        //返回 19 (10+9)
parseInt("11",2);        //返回 3 (2+1)
parseInt("17",8);        //返回 15 (8+7)
parseInt("1f",16);        //返回 31 (16+15)
parseInt("010");        //未定:返回 10 或 8

NaN

使用Number()可以将数据转为数字类型,如果转不了,则会返回NaN。

因为NaN 不等于 NaN,所以不要使用 == 判断是否为 NaN,要用isNaN判断。

用以下写法判断能否转为数字类型:

let a = 'a';
isNaN(Number(a))  // false

判断小数点后有几位

3.66.toString().split('.')[1].length  // 2

results matching ""

    No results matching ""