当前位置:首页 > 编程技术 > 正文内容

【说站】js浮点数精度丢失的问题及解决

yc8882年前 (2022-09-15)编程技术299

js浮点数精度丢失的问题及解决

说明

1、在数学计算中,小数会有一定的误差,这是计算机本身的bug,不仅是js语言,其他语言也有这个问题。

2、解决方案,不要让两个小数比较大小,一般不会影响正常开发。

实例

<script>
    /*NaN:  not a number 不是一个数字
       * 1.NaN是number数据类型中一个特殊的数值,是数学计算错误得到的一个结果
       * 2.NaN与任何数字都不相等,包括它的本身
       * 3.NaN与任何数字计算得到的都是NaN
      isNaN(数据):判断一个数据是不是NaN,结果为布尔类型  true:是 false:不是
     */
 
    //1.NaN:not a number 不是一个数字
    //NaN是number数据类型中一个特殊的数值,是数学计算错误得到的一个结果
    let num = '张三' - 100;//当某个表达式无法计算(计算错误时),会得到NaN
    console.log ( num );    //NaN
    console.log ( typeof  NaN );  //number
 
    //2.NaN与任何数字都不等,包含它本身
    console.log ( NaN == 0 );   //false
    console.log ( NaN == NaN );   //false
 
    //3.NaN与任何数字计算得到的都是NaN
    console.log ( NaN + 100 );   //NaN
 
    //4.isNaN(数据):检测一个数据是不是NaN  得到的结果是布尔类型
    console.log ( isNaN ( NaN ) );  //true
    console.log ( isNaN ( 123 ) );  //false
    //如果检测的数据不是number类型,js编译器会尝试着将这个数据转化为number类型,然后再判断
    //这种数据类型转换称为隐式转换:下一小节讲解
    console.log ( isNaN ( "abc" ) ); //true
 
    //5.(课后了解即可)number浮点数(小数)精度丢失
    //小数在进行数学计算时,会有一定的误差,这是计算机本身的bug,不仅是js语言,其他语言也有这个问题
    //解决方案:不要让两个小数比较大小,这种情况一般不会影响正常开发
    console.log ( 0.1 + 0.2 );   //0.300000000000004
    console.log ( 0.1 + 0.2 == 0.3 ); //false
    console.log ( 0.4 + 0.5 );   //0.9
    console.log ( 1.1 - 0.2 );   //0.9000000000000001
</script>

以上就是js浮点数精度丢失的问题及解决,希望对大家有所帮助。更多js学习指路:js教程

推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/8426.html

标签: js
分享给朋友:

“【说站】js浮点数精度丢失的问题及解决” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

今天在安装MySQL时出现starting the server失败,经过查询分析得出以下结论,记录一下操作步骤。原因分析:如果电脑是第一次安装MySQL,一般不会出现这样的报错。如下图所示。star...

【说站】Java从resources读取文件内容的方法有哪些

【说站】Java从resources读取文件内容的方法有哪些

本文主要介绍的是java读取resource目录下文件的方法,比如这是你的src目录的结构├── main│ ├── java│ │ └── ...

【说站】PHP使用Openssl实现本地生成csr、key、crt证书文件

【说站】PHP使用Openssl实现本地生成csr、key、crt证书文件

在Apache中要启用HTTPS访问,需要开启Openssl,也就需要crt和key两个和证书相关的文件了,那如果用制作呢?之前发过博文介绍过用在线生成的方式,但搞PHP编程的人有些东西还是想在自己的...

【说站】前端使用Image()函数加载base64图片不兼容无onload事件解决方法

【说站】前端使用Image()函数加载base64图片不兼容无onload事件解决方法

Image()函数将会创建一个新的HTMLImageElement实例。它的功能等价于 document.createElement('img')。正常情况下,我们使用下面方法加载图片...