JavaScript 简单计算

news2024/9/24 19:14:06

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));//NaN
    console.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));//1
    console.log(parseInt(str));//1

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/400130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解Linux进程

进程参数和环境变量的意义一般情况下,子进程的创建是为了解决某个问题。那么解决问题什么问题呢?这个就需要进程参数和环境变量来进行决定的。子进程解决问题需要父进程的“数据输入”(进程参数 & 环境变量)设计原则:3.1 子进程启动的时候…

项目实战典型案例6——没有复用思想

这里写目录标题一:背景介绍反例思路&方案反例一的优化思路和方案反例一优化的模拟代码测试优化之前的缺点与优化之后的优点反例二的优化思路和方案反例二优化的模拟代码测试优化之前的缺点与优化之后的优点四:总结一:背景介绍 本篇博客是…

Spring Boot统一功能处理

目录 一、统一用户登录权限验证 1.1 自定义拦截器 1.2 将自定义拦截器加入到系统配置 1.3 统一访问前缀 二、统一异常处理 三、统一数据格式返回 一、统一用户登录权限验证 1.1 自定义拦截器 拦截器是一个普通的类,需要实现HandlerInterceptor接口并重写pre…

centos安装docker,docker-cpmpose教程及疑难解决

1、安装dockeryum -y install docker出现完毕(complete)则表示安装完成2、启动docker服务systemctl start docker报错如下,让通过 systemctl status docker.service 和 journalctl -xe 命令查看详情输入systemctl status docker.service&…

在ROS2中,通过MoveIt2控制Gazebo中的自定义机械手

目前的空余时间主要都在研究ROS2,最终目的是控制自己用舵机组装的机械手。 由于种种原因,先控制Gazebo的自定义机械手。 先看看目前的成果 左侧是rviz2中的moveit组件的机械手,右侧是gazebo中的机械手。在moveit中进行路径规划并执行后&#…

RolePred: Open-Vocabulary Argument Role Prediction for Event Extraction 论文解读

Open-Vocabulary Argument Role Prediction for Event Extraction 论文:2211.01577.pdf (53yu.com) 代码:yzjiao/RolePred: Source code for EMNLP findings paper “Open-Vocabulary Argument Role Prediction for Event Extraction” (github.com) 期…

优思学院|我们的企业面对哪些危机?六西格玛如何处理这些危机?

如果你在某公司买到的产品经常出现问题,你还会再去买他们的产品吗?如果某公司为你提供的服务经常不如你所预期,你还会再次使用他们的服务吗? 六西格玛管理是以客户为中心,透过六西格玛的工具和方法,针对问…

【黑马】Java基础从入门到起飞目录合集

视频链接: Java入门到起飞(上部):BV17F411T7AoJava入门到起飞(下部):BV1yW4y1Y7Ms 学习时间: 2023/02/01 —— 2023/03/09断断续续的学习,历时大概37天,完结撒…

php+bootstrap+jquery+mysql实现购物车项目案例

获取源码 一键三连后,评论区留下邮箱安排发送:) 介绍 使用php,bootstrap,jquery,mysql实现的简易购物车案例。 通过本案例,你将学习到以下知识点: php 操作 mysql 实现增删改查掌握 php 常用数组函数掌握 php $…

HBase 2.x核心技术

HBase 2.x主要包含以下核心功能: 1、基于Procedure v2重新设计了HBase的Assignment Manager和核心管理流程。通过Procedure v2,HBase能保证各核心步骤的原子性,从设计上解决了分布式场景下多状态不一致的问题。 2、实现了In Memory Compactio…

Chapter2.2:线性表的顺序表示

该系列属于计算机基础系列中的《数据结构基础》子系列,参考书《数据结构考研复习指导》(王道论坛 组编),完整内容请阅读原书。 2.线性表的顺序表示 2.1 顺序表的定义 线性表的顺序存储亦称为顺序表,是用一组地址连续的存储单元依次存储线性表…

脑机接口科普0017——飞米

本文禁止转载!!!! 在我们的九年制义务教育体系中,我们知道纳米是个很小的单位,一般进行单位制的转换的时候,最小就只能到达纳米级别了。 1nm 10^-9 m 这会给学生造成一种误解。认为纳米就是…

搭建兰空图床(Lsky Pro)-docker

兰空图床(Lsky Pro) 官方网站:https://www.lsky.pro/ GitHub:https://github.com/lsky-org/lsky-pro 一, 安装docker-compose 下载-授权 #下载 国内地址 curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-una…

dl----算法常识100例

1.depthwise卷积&&Pointwise卷积 depthwise与pointwise卷积又被称为Depthwise Separable Convolution,与常规卷积不同的是此卷积极大地减少了参数数量,同时保持了模型地精度,depthwise操作是先进行二维平面上地操作,然后利…

nginx的学习

1. 我们今天的目标是学习 了解认识nginx的基本结构和语法学习经典案例 2. Nginx是什么 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,Nginx是由俄罗斯的人开发的,因它的稳定性、丰富的功能集…

爬虫(二)解析数据

文章目录1. Xpath2. jsonpath3. BeautifulSoup4. 正则表达式4.1 特殊符号4.2 特殊字符4.3 限定符4.3 常用函数4.4 匹配策略4.5 常用正则爬虫将数据爬取到后,并不是全部的数据都能用,我们只需要截取里面的一些数据来用,这也就是解析爬取到的信…

通过测试驱动开发(TDD)的方式开发Web项目

最近在看一本书《Test-Driven Development with Python》,里面非常详细的介绍了如何一步一步通过测试驱动开发(TDD)的方式开发Web项目。刚好这本书中使用了我之前所了解的一些技术,Django、selenium、unittest等。所以,读下来受益匪浅。 我相…

NFT的前景,元宇宙的发展

互联网的普及和数字技术的广泛应用,成为消费升级的新动力,在不断创造出更好的数字化生活的同时,也改变了人们的消费习惯、消费内容、消费模式,甚至是消费理念,数字经济时代的文化消费呈现出新的特征。 2020年有关机构工…

性能优化的核心思路

性能优化的本质是良好的用户体验和有限的资源之间的矛盾。核心思路【1】堆硬件 优化软件(算法、步骤)【2】开源(堆机器) 节流(提高资源利用率,少占资源)【3】输入、计算、输出【4】权衡核心思想…

谷粒学院开发(二):教师管理模块

前后端分离开发 前端 html, css, js, jq 主要作用:数据显示 ajax后端 controller service mapper 主要作用:返回数据或操作数据 接口 讲师管理模块(后端) 准备工作 创建数据库,创建讲师数据库表 CREATE TABLE edu…