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只能转换第一个。

相关内容

热门资讯

天普股份发布董事及高管股份变动... 中访网数据  宁波市天普橡胶科技股份有限公司(以下简称“天普股份”)于近日审议通过了《董事、高级管理...
阔步向前启新程 接续奋斗谱新... 2026年3月11日,全国政协十四届四次会议在北京人民大会堂举行闭幕会。这是闭幕会后,委员们走出人民...
【公益巡礼】 (来源:新华日报) 南京福彩:公益之花绽放金陵城 刚刚过去的2025年,南京福彩交出一...
起跑!银发赛道上的“00后” ●兵团日报全媒体记者 史进 “小丫头,你看新闻了吗?国家越来越关心我们老年人了!”3月9日清...
百济神州将于3月25日审议全年... 中访网数据  百济神州有限公司今日发布公告,宣布其董事会审计委员会定于2026年3月25日(香港时间...