js中小数取整总结

1. 使用Math对象的属性

1.1 Math.ceil()

Math.ceil() 函数返回大于或等于一个给定数字的最小整数。

语法:var re = Math.ceil(x);
参数:x 必须为数字或字符串形式数字如'2'
返回值:满足参数要求则返回对应整数,否则返回NaN

Math.ceil(); // NaN
Math.ceil(''); // 0
Math.ceil('  '); // 0

Math.ceil(1.5); // 2
Math.ceil(1.4); // 2

Math.ceil('1.5'); // 2
Math.ceil('1.4'); // 2

Math.ceil('a'); // NaN

1.2 Math.floor()

Math.floor() 返回小于或等于一个给定数字的最大整数。

语法:var re = Math.floor(x);
参数:x 必须为数字或字符串形式数字如'2'
返回值:满足参数要求则返回对应整数,否则返回NaN

Math.floor(); // NaN

Math.floor(''); // 0
Math.floor('  '); // 0

Math.floor(1.5); // 1
Math.floor(1.4); // 1

Math.floor('1.5'); // 1
Math.floor('1.4'); // 1

Math.floor('a'); // NaN

1.2 Math.round()

Math.round() 返回一个数字四舍五入后最接近的整数。

语法:var re = Math.round(x);
参数:x 必须为数字或字符串形式数字如'2'
返回值:满足参数要求则返回对应整数,否则返回NaN
描述:

  1. 参数小数部分大于0.5,则入: Math.round(0.6); // 1
  2. 参数小数部分小于0.5,则舍:Math.round(0.4); // 0
  3. 参数小数部分等于0.5,则往正无穷方向上取最近的一个整数:Math.round(0.5); // 1 Math.round(-0.5); // -0
Math.round(); // NaN

Math.round(''); // 0
Math.round('  '); // 0

Math.round(1.4); // 1
Math.round(1.5); // 2
Math.round(-1.5); // -1
Math.round(1.6); // 2

Math.round('1.4'); // 1
Math.round('1.5'); // 2
Math.round('-1.5'); // -1
Math.round('1.6'); // 2

Math.round('a'); // NaN

2. 使用js内置对象parseInt

MDN 官方文档:parseInt
parseInt(string, radix) 解析一个字符串并返回指定基数的十进制整数, radix2-36之间的整数,表示被解析字符串的基数。

语法:var re = parseInt(str, radix);
参数:

  1. str 必须为数字或数字和字母[0-9a-zA-Z]组成的字符串如's2' '3a'
    如果参数不是一个字符串,则将其转换为字符串(使用 ToString 抽象操作)
    允许前导和尾随空格
  2. radix可选,表示字符串基数,范围从23636代表10个数字和26个字母36 = 10 + 26
    radix36表示第一个字符串参数为36进制的,范围从[0-9a-yA-Y],没有字母z,以此类推
    使用该函数时最好写上第二个参数radix

返回值:满足参数要求则返回对应整数,否则返回NaN,如果第一个字符不能转换为数字,parseInt会返回 NaN

关于radix的取值:

如果 radixundefined0或未指定的,JavaScript会假定以下情况:

  1. 如果输入的 string以 "0x"或 “0X”(一个0,后面是小写或大写的X)开头,那么radix被假定为16,字符串的其余部分被当做十六进制数去解析。
  2. 如果输入的 string"0"(0)开头, radix被假定为8(八进制)或10(十进制)。具体选择哪一个radix取决于实现。ECMAScript 5 澄清了应该使用 10 (十进制),但不是所有的浏览器都支持。因此,在使用 parseInt 时,一定要指定一个 radix
  3. 如果输入的 string 以任何其他值开头, radix10 (十进制)。

要将一个数字转换为特定的 radix 中的字符串字段,请使用 thatNumber.toString(radix)函数。

parseInt取整原理

小数包含小数点字符,即.,而parseInt遇到该小数点时就停止后面的解析工作,返回小数点前的解析结果
parseInt认识+-运算符

parseInt(3.2, 10); // 3
parseInt('3.8', 10); // 3

parseInt(-3.2, 10); // -3
parseInt(+3.2, 10); // 3
parseInt('z',36); // 35

/*
	或者 NaN,当:
	radix 小于 2 或大于 36 ,或
	第一个非空格字符不能转换为数字
*/
parseInt('a', 10); // NaN
parseInt('2a', 10); // 2 此时进制为 10 则 parseInt 对象不认识 a,忽略 a

parseInt('2a', 11); // 32  此时进制为 11 则 a 为 10,11 = 2 * 11^1 + 10 * 11^0
parseInt('a', 11); // 10
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值