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

中国建设银行黄冈分行网站qq群排名优化软件官网

中国建设银行黄冈分行网站,qq群排名优化软件官网,搜索引擎推广的特点,北京市住房及城乡建设部网站Hello,各位,我胡汉三~啊呸,我又回来啦,还改了名,换了头像,哈哈哈!时隔这么长时间不更新了,太忙了,平时笔记都记在了自己的电脑上,从今天起,继续更…

Hello,各位,我胡汉三~啊呸,我又回来啦,还改了名,换了头像,哈哈哈!时隔这么长时间不更新了,太忙了,平时笔记都记在了自己的电脑上,从今天起,继续更起来啊!不能偷懒了
在这里插入图片描述
好了,今天我们来聊聊Window.toFixed吧,曾几何时,如果你说,有一个小数,我要你保留两位小数,我一定会很自信的祭出toFixed,But,让我们一起来看看以下效果
在这里插入图片描述

what?

在这里插入图片描述
这跟我九年义务教育学习的四舍五入不一样啊!经过和一位大佬的交流,原来此方法遵循一个叫什么"银行家算法",

银行家算法:4舍6入5取双

被修约的数字小于5时,该数字舍去;被修约的数字大于5时,则进位; 被修约的数字等于5时,要看5前面的数字,若是奇数则进位,若是偶数则将5舍掉,即修约后末尾数字都成为偶数;若5的后面还有不为"0"的任何数,则此时无论5的前面是奇数还是偶数,均应进位。

但是看js的运行结果,并不是严格按照这个算法来的,当然了,我们可对这个算法不感兴趣,活得干啊,砖得搬啊,要是耽误了搬砖,可不得了
在这里插入图片描述
于是,我们可以自己实现一个toFixed

大体思路如下:

  1. 先把数字转成字符串,进行小数点切割,切成数组(整数和小数)
  2. 把需要保留的位数切割出来,然后取出保留位数的后一位,进行四舍五入判断
  3. 然后把整数数组和小数字符串相加,得到一个操作数,相当于之前的number 乘以一个系数,把小数扩大了多少倍,变成了整数
  4. 然后根据第二步取出的数,来进行判断,如果大于等于5,那么就把第三步的数整数进行+1操作
  5. 然后根据保留位数,把整数和小数部分,截取出来,拼接上小数点

下面直接上代码

// 对传进来的number进行拆解function disassembleNum(number, digit) {// 如果不是number类型的值,就returnif (!number || typeof number !== 'number') return;// 将number转换成字符串,按小数点拆分成数组let numberArr = (number + '').split('.');// 看看传进来的保留位数是否大于number的小数位数let exceed = numberArr[1].length < digit;// 把整数位的数组找个变量存起来let integer = numberArr[0];// 如果保留位数大于小数位数,则在后面加差出来的0,如果小于等于小数位数,则截取出到保留位数的小数部分,找个变量存起来let originDecimal = exceed ? numberArr[1].slice(0, digit + 1) + '0'.repeat(digit - numberArr[1].length) : numberArr[1].slice(0, digit + 1);// 小数部分let decimal = originDecimal.slice(0, digit);// 通过保留位数后一位来决定四舍五入,比如保留2位小数,则取小数点后第3位来判断四舍五入let next = originDecimal.slice(digit, digit + 1)return {integer,decimal,next}}function myToFixed(number, digit) {const { integer, decimal, next } = disassembleNum(number, digit);// 此操作相当于把小数点去掉了,变成了整数,相当于乘以了一个系数,把小数点去掉了let operateNum = integer + decimal;if (next >= 5) {// 如果保留位数后一位大于等于5,则五入,整体加1operateNum = (operateNum * 1 + 1) + '';}// 最后把小数位数和整数位数截取出来,然后把小数点给拼接上let result = operateNum.slice(0, operateNum.length - digit) + '.' + operateNum.slice(operateNum.length - digit)return result;}console.log('1.3355保留2位小数 ==>', myToFixed(1.3355, 2))console.log('1.345保留2位小数 ==>', myToFixed(1.345, 2))console.log('1.355保留2位小数 ==>', myToFixed(1.355, 2))console.log('1.365保留2位小数 ==>', myToFixed(1.365, 2))console.log('1.9964保留2位小数 ==>', myToFixed(1.9964, 2))console.log('300.9964保留3位小数 ==>', myToFixed(300.9964, 3))console.log('3008.9464保留2位小数 ==>', myToFixed(3008.9464, 2))console.log('2.33334545566保留5位小数 ==>', myToFixed(2.33334545566, 5))

来吧,列位,咱们来看看运行效果吧
在这里插入图片描述
至此,大功告成,如果代码有什么bug,还望大佬们指正!拜拜!

http://www.laogonggong.com/news/2067.html

相关文章:

  • 网站三级页怎么做免费技能培训在哪里报名
  • 企业网站html模板网站如何注册
  • 网站建设方案 文库网络推广入门教程
  • 网站建设用语东莞网络优化服务商
  • 做网络课堂的平台有哪些网站软件拉新推广平台
  • 哪个网站diy做宝宝衣服千锋教育靠谱吗
  • 做网站必须要购买空间吗网站seo 工具
  • 做网站需要硬件软件长尾关键词是什么意思
  • 网站开发简历app推广是什么工作
  • 免费源码交易网站源码软文广告代理平台
  • 北京市住房城乡建设委网站全国新冠疫苗接种率
  • 雄安网站设计制作seo
  • 在硬盘里做网站seo关键词大搜
  • 网站做图标链接网络营销的产品策略
  • 网站忧化 推广同时做惠州seo外包公司
  • wordpress网站从零北京专业网站优化
  • 做nba网站的素材百度流量统计
  • 做网站需要哪些技术人员徐州seo代理计费
  • 门户网站建设教程如何做好搜索引擎优化工作
  • 有人知道网站怎么做吗西安seo引擎搜索优化
  • 微信网站用什么做的深圳排名seo公司
  • 响应式网站建设推荐乐云seo百度云搜索引擎入口手机版
  • 软件界面设计的原则网站如何优化推广
  • 义乌创博网络科技有限公司seo虚拟外链
  • 网站制作代理免费企业黄页查询官网
  • 我要免费建立一个网站吗企业qq官方下载
  • 做网站公司(信科网络)培训心得
  • 局机关门户网站建设自查报告范文口碑营销的案例
  • 在珠海注册公司需要什么资料seo优化搜索结果
  • 做建材的网站网站服务费一年多少钱