当前位置: 首页 > news >正文

JavaScript随手笔记---保留小数位

文章目录

  • 前言
  • 一、JS四舍五入保留小数
    • 1.toFixed()函数
  • 二、JS不四舍五入保留小数
    • 1.Math.floor()和Math.ceil()函数
    • 2.parseInt()函数
    • 3.parseInt()和toFixed()、Math.floor()与toFixed()
    • 4.字符串匹配
  • 总结


前言

在JS中保留小数的方法有很多,可以Math函数或者以字符串形式来进行处理,但在有的时候需要四舍五入,有时候不需要,这里围着这两点展开;


一、JS四舍五入保留小数

1.toFixed()函数

使用toFixed()函数可以对小数位进行四舍五入,得到的结果是字符串类型;

	var number = 0.9996
	var Test = number.toFixed(2); //这里会自动四舍五入,保留两位小数
	
	console.log(Test); //1.00
	console.log(typeof(Test)); //String

二、JS不四舍五入保留小数

这里的方法均不会对小数四舍五入处理

1.Math.floor()和Math.ceil()函数

Math.floor()对数值进行向下取整,Math.ceil()向上取整,并且不改变数据类型。这两个函数均只保留整数,所以还要/100才能得到想要的数据;

var number = 1.7332;
var Test1 = Math.floor(number * 100) / 100;//保留两位小数,
var Test2 = Math.ceil(number * 100) / 100;//保留两位小数

console.dir(Test1);        //1.73
console.dir(typeof(Test1)); // number

console.dir(Test2);        //1.74
console.dir(typeof(Test2)); // number

2.parseInt()函数

从前面两个函数来看,也可以使用parseInt()进行取整后再除以100。

var number = 0.99996;
var Test1 = parseInt(number * 100) / 100;//保留两位小数,

console.dir(Test1);        //0.99
console.dir(typeof(Test1)); // number

但是,当小数位只有一位或者两位都为0的情况下,则只会保留整数。

var number = 0.900006;
var Test1 = parseInt(number * 100) / 100;//保留两位小数,

console.dir(Test1);        //0.9
console.dir(typeof(Test1)); // number

3.parseInt()和toFixed()、Math.floor()与toFixed()

这里如果需要自带补0的话,则要跟toFixed() 函数进行处理。

var number = 0.900006;
var Test1 = (parseInt(number * 100) / 100).toFixed(2);//保留两位小数,

console.dir(Test1);        //0.90
console.dir(typeof(Test1)); // number

Math.floor()也是可以跟==toFixed()==函数一起进行处理的。

var number = 0.900006;
var Test1 = (Math.floor(number * 100) / 100).toFixed(2);//保留两位小数,

console.dir(Test1);        //0.90
console.dir(typeof(Test1)); // number

4.字符串匹配

这里要注意的是先将数据转换为字符串,最后在转换为数值类型。

var number = 0.900006;
//这里使用正则表达式来进行处理
var Test1 = Number(number.toString().math(/^\d+(?:\.\d{0,2})?/)); 

console.dir(Test1);        //0.90
console.dir(typeof(Test1)); // number

总结

以上就是今天要讲的内容,本文仅仅简单介绍了JS保留小数位的方法,分别从四舍五入和是否自动补0这两个方面进行入手。

相关文章:

  • 检查网络端口是否正常
  • 基于JavaSwing开发房产管理系统(access数据库) 课程设计 大作业
  • [面试直通版]操作系统之编程语言与运行原理(下)
  • DFP 数据转发协议规则说明
  • Qt开发经验小技巧246-250
  • 《算法导论》第14章-数据结构的扩张 14.1-动态顺序统计 14.2-如何扩张数据结构
  • 前端面试丨综合整理中高级前端最新面试题
  • 大端与小端
  • GBase 8c 数据库内置角色
  • 无需训练、APP可玩,商品、车辆、菜品20+场景一键识别
  • 【Linux 基础笔记】(一)
  • Notion + CloudFlare + 域名搭建网站
  • 自媒体平台上剪视频的素材都是从哪来的?
  • 图像识别与处理学习笔记(四)贝叶斯决策和概率密度估计
  • SQL映射XML文件
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【个人向】《HTTP图解》阅后小结
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Angular Elements 及其运作原理
  • DataBase in Android
  • Git的一些常用操作
  • JAVA SE 6 GC调优笔记
  • Map集合、散列表、红黑树介绍
  • nfs客户端进程变D,延伸linux的lock
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Vue.js 移动端适配之 vw 解决方案
  • 第十八天-企业应用架构模式-基本模式
  • 飞驰在Mesos的涡轮引擎上
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 设计模式走一遍---观察者模式
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 一起参Ember.js讨论、问答社区。
  • C# - 为值类型重定义相等性
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • !!Dom4j 学习笔记
  • #AngularJS#$sce.trustAsResourceUrl
  • #if #elif #endif
  • #预处理和函数的对比以及条件编译
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (zhuan) 一些RL的文献(及笔记)
  • (十一)图像的罗伯特梯度锐化
  • (四)模仿学习-完成后台管理页面查询
  • (一)RocketMQ初步认识
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • . NET自动找可写目录
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • @javax.ws.rs Webservice注解