JavaScript 简单计算
创始人
2024-05-31 14:36:15

parseFloat和Number

parseFloat()并不能进行数据类型转换,

所以对字符串进行parseFloat()是不起作用的,

需要使用Number()进行强制类型转换;

但是,如果真正涉及到精度计算,建议用decimal.js

毕竟,js的计算能力在那放着呢~~

一、背景

我们都知道js是有精度问题的,如下图所示:

 在一些金额的计算时,对于精度要求的需要比较精准,所以这个时候,我们是需要特殊进行处理的,所以这个时候就引入了decimal.

二、decimal介绍

decimal.js是使用的二进制来计算的,所以可以更好地实现格化式数学运算,对数字进行高精度处理;使用decimal类型处理数据可以保证数据计算更为精确,还可以节省储存空间。

三、使用

1、npm命令引入decimal.js文件 

$ npm install --save decimal.js
/**  Node.js  */
var Decimal = require('decimal.js')/** ES6 方式 */
import { Decimal } from 'decimal.js'

 2.加减乘除

 const a = 9.99;const b = 8.03;// 加法let c = new Decimal(a).add(new Decimal(b)) // 减法let d = new Decimal(a).sub(new Decimal(b))// 乘法let e = new Decimal(a).mul(new Decimal(b))// 除法let f = new Decimal(a).div(new Decimal(b))

注意:得到的是Decimal对象,需要转换为number类型哦

1:Number():强制转化,如果转换的是字符串,字符串内必须都是有效的数字字符才可以转换,如过有一个不是有效数字,则无法转换,会返回NaN。

    var cur="1adc";var str="1";console.log(Number(cur));//NaNconsole.log(Number(str));//1

转换布尔类型

console.log(Number(true)); //1
console.log(Number(false)); //0

2:parseInt():非强制转换,从左到右,把找到的有效的数字返回,并且转换为整数。

    var cur="1ad";var str="1";console.log(parseInt(cur));//1console.log(parseInt(str));//1

3: parseFloat():非强制转换,从左到右,把找到的有效的数字返回,转换为小数。

    var cur="1.3ad1.4";var str="1.5,2.4";console.log(parseFloat(cur));//1.3console.log(parseFloat(str));//1.5

注:字符串中有多个数字的时候,parseFloat与parseInt只能转换第一个。

相关内容

热门资讯

聚焦北京“十五五”规划建议|重... 转自:北京青年报客户端《中共北京市委关于制定北京市国民经济和社会发展第十五个五年规划的建议》发布。建...
聚焦北京“十五五”规划建议|民... 转自:北京青年报客户端《中共北京市委关于制定北京市国民经济和社会发展第十五个五年规划的建议》发布。其...
绵阳车务段通报:两名作业人员被... 两名作业人员被货物列车碰撞不幸身亡11月27日凌晨,两名作业人员在宝成线黄许镇至德阳区间进入邻线,被...
俄罗斯发射载人飞船,载有2名俄... 新华社消息,俄罗斯国家航天集团11月27日说,俄“联盟MS-28”载人飞船当天从位于哈萨克斯坦境内的...
完美世界(002624.SZ)... 格隆汇11月27日丨完美世界(002624.SZ)公布,公司实际控制人池宇峰先生计划在本公告披露之日...