toFixed()*100保留的小数位数和预想的不一致

2023-05-16

目录

一、问题

 二、原因及解决方法

三、总结


一、问题

1.因为演示需要,要造一些假数据,一些数据要求保留2位小数。这需求真的不难,不就是parseFloat().toFixed()不就完了

2.所以很快就写了如下代码:

let a=Math.random()*(12-1)+1;
let b=12;
let random1=parseFloat(a/b).toFixed(4)*100;
let random2=parseFloat(a/b*100).toFixed(2);
let random3=(parseFloat(a/b)*100).toFixed(2);
console.log("random",random1,random2,random3);

3.问题:random1竟然有时候有很多位小数,还是偶现的,就离谱,如图1-1所示。

如图 1-1

 二、原因及解决方法

1.不应该呀,怎么会这么离谱呢?

   先保留4位小数,然后再扩大100倍,不就是小数点右移2位吗?怎么有时候位数竟然 远远大于2呢??????

2.直接进行运算发现,有时候也会有这种问题,如图2-1所示

图2-1

 3.突然意识到应该是 和计算机的计算的精度有关系。计算机中采用二进制进行计算(计算机能够保留、存储和计算的位数是有限制的,现在一般都是64位,对于一些无限小数,计算机无法准确的表示),所以和十进制的计算结果存在差异,最终导致了在十进制中正确的东西,用二进制计算时有问题的情况。

4.解决方法:对最终的计算结果使用 .toFixed(),就能确保保留的小数位数是准确的。toFixed就是用来专门处理float数据保留的小数位数的。

三、总结

1.之前一直听老师在讲台说:浮点溢出。只是知道有这么回事,但是没有举例,也没有实际遇到过,现在算是 温故而知新了。

2.计算机中的运算要确保运算结果和预期一致,使用的方法一定要精准。最好不要把十进制的逻辑代入到代码中,因为二进制计算和十进制计算在精度方面是有区别的。

/*

希望对你有帮助!

如有错误,欢迎指正,非常感谢!

*/ 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

toFixed()*100保留的小数位数和预想的不一致 的相关文章

  • python做1到100的自然数累加

    python做1到100的自然数累加 xff0c 并将结果保存至同目录下的txt文件 s span class token operator 61 span span class token number 0 span i span cla
  • win10重置进度条不动了_win10重置卡在100%不动没反应怎么办

    要重置自己的win10系统来解决一些问题故障的话 xff0c 对于在重置过程中出现了的卡在100 不动没反应的情况 xff0c 那么win10重置卡在100 不动没反应怎么办呢 小编觉得可能是因为我们电脑在重置完毕之后还有一些文件需要编译
  • 1加到100用python实现

    你好 xff01 可以使用 Python 中的 for 循环来实现 1 加到 100 的操作 xff0c 具体方法如下 total 61 span class hljs number 0 span span class hljs comme
  • Python练习:求100以内的素数和

    练习 xff1a 求100以内的素数和 平台 xff1a Python123 io 教师 xff1a 嵩天 求100以内的素数和 描述 求100以内的素数之和并输出 def sushu n for i in range 2 n if n i
  • Linux shell 用for循环100次的方法

    前言 循环不管在程序中还是脚本中都需要经常用到 xff0c 在写shell脚本时 xff0c 经常需要for进行100次循环 这里谈谈几种从1到100的循环方法 四种方法 C语言风格 span class hljs keyword for
  • 交行对账接口100.100.100.X访问超时解决办法

    今天维护一个老的项目 xff0c 一个老的项目已经稳定运行近1年了 最近突然出现故障了 windows服务器 xff0c 中间为了排除问题 xff0c 重启了一下服务器 毕竟windows服务器 xff0c 有时重启包治百病 各种问题都成功
  • C语言例题 4/100

    题目 xff1a 输入某年某月某日 xff0c 判断这一天是这一年的第几天 xff1f include lt stdio h gt int main int day month year sum leap printf 34 n请输入年 月
  • 不到100行写出一个完整的web框架

    本篇文章是为了后面的Django做准备的 xff0c 这是学习web框架的底层知识 xff0c 没有直接用到socket xff0c 而是用Python自带的库wsgiref 1 wsgiref模块 它就相当于是一个服务器 xff0c 会帮
  • python数值运算m op n 100+10_【Python】数值运算

    描述 获得用户输入的一个字符串 xff0c 格式如下 xff1a M OP N 其中 xff0c M和N是任何数字 xff0c OP代表一种操作 xff0c 表示为如下四种 xff1a 43 加减乘除
  • 求100以内的偶数和

    一 文字描述 1 定义两个整型变量sum xff0c i xff1b 2 把0赋值给sum xff0c 2赋值给i xff1b 3 使sum 61 sum 43 i xff1b 4 如果i xff1c 61 100 xff0c 则返回第3步
  • 编写Python语言,求100到999之间的水仙花数

    for sum in range 100 1000 bai 61 sum 100 shi 61 sum 10 10 ge 61 sum 10 if bai 3 43 shi 3 43 ge 3 61 61 sum print sum 39
  • 【Python量化分析100例】Day1-使用Tushare获取数据

    1 背景 Tushare平台是目前使用python学习量化投资比较好用的而且是免费的一个数据获取平台 主要实现对金融数据从数据采集 清洗加工 到 数据存储的过程 xff0c 能够为金融分析人员提供快速 整洁 和多样的便于分析的数据 xff0
  • c语言中num =10,num/100%10 这是什么意思求详细的计算逻辑

    include int main 定义三位数num 个位数sd 十位数td 百位数hd int num sd td hd 循环所有三位数 for num 61 153 num 61 153 获取三位数字num百位上的数字 hd 61 num
  • 量化投资学习——A股H股套利年化100%

    一 交易对象选取 首先是选取数据 xff0c 选取数据的来源是wind xff1a 从wind中的交易数据 AH比较 里面可以看到历史收盘价和A H溢价率 xff0c 考虑到在2008年金融危机之后 xff0c 全球市场发生了较大的变化 x
  • 1到100的二进制表示

    1 61 1 2 61 10 3 61 11 4 61 100 5 61 101 6 61 110 7 61 111 8 61 1000 9 61 1001 10 61 1010 11 61 1011 12 61 1100 13 61 11
  • 【杭电100题】2094 产生冠军

    原题 xff1a http acm hdu edu cn showproblem php pid 61 2094 最近很喜欢用map 把成功者 失败者都存起来 然后在成功者里把曾经失败的划掉 最后成功者里如果只剩一个人 xff0c 冠军产生
  • 计算100以内的素数的个数

    以下代码是用来计算100以内的素数的个数 xff0c 请把相应的空填上 struct prime number node int prime number prime number node next int calc prime numb
  • 【100%有效】解决AndroidStudio 控制台编译输出中文乱码,亲测解决!

    背景 在AndroidStudio中新建了一个Java Module xff0c 但是点击 Run app 之后 xff0c Build Output 控制台输出的中文都是乱码 xff0c 都是问号一样的字符 google了很多方法 xff
  • 100条经典C语言笔试题目

    100 条经典C语言笔试题目 题目来源 xff1a 1 中兴 华为 慧通 英华达 微软亚洲技术中心等中 外企业面试题目 xff1b 2 C 语言面试宝典 林锐 高质量编程第三版 说明 xff1a 1 部分C 语言面试题中可能会参杂部分和C
  • C++二叉树遍历总结\100. Same Tree

    理论学习 概念介绍 遍历图解 遍历算法 代码实践 实现模板 Same Tree 题目描述 代码实现 转载请注明出处 http blog csdn net c602273091 article details 55195284 理论学习 概念

随机推荐