我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

又是一道选择题helphelpme

print(0.1+0.2==0.3)
为什么是false

float a = (float)0x3dcccccc;

float b = (foat)0x3dcccccd;

a和b 都是0.1

但是 a == b 为 false  题主可以去了解下浮点数是怎么构成的

1位(符号位)+8位(阶码)+23(尾码)

因为0.1+0.2系统会返回0.30000000000000004..
正确做法是乘10之后相加再除以10

https://blog.csdn.net/a2657222/article/details/42079415

Python跟我说0.1+0.2!=0.3,难道这么多年的数学白学了?_m0_46376148的博客-CSDN博客_python0.1+0.2==0.3 问题今天闲来无事在IDLE中计算了一下0.1 + 0.2,结果让我大吃一惊,竟然等于0.30000000000000004,纳尼?虽然只是小数点后面第十七位多了个4,但是这也令我陷入深深的思考,难道我这么多年的数学白学了?我们先来看一下程序运行的结果:当然有些同学可能会想这会不会是一个bug呢?那么我们来做一些测试:这段程序大致的意思就是当i < 1时,i会加0.1,然后将每一个i的值都打印出来。看到结果,大家应该不会说python有那么多的bug吧,这里面似乎有着不为人知的秘密呢。解惑 https://blog.csdn.net/m0_46376148/article/details/108509828

计算机的数字是二进制保存的,你输入一个它会选择一个最近的数字,计算,再转换成十进制
0.1+0.2python输出的是0.30000000000000004
还有,不可能输出false,应该是False

近期文章

  • xpath无法定位,一直返回空列表
  • 谁能告诉我这个代码错在哪
  • TDengine 报错896
  • Detecting C compiler ABI info - failed
  • 编写程序在 n 个元素的数组中查找指定的元素 x。
  • 为什么出不来结果,但是如果数组是一定的又可以出结果
  • 删除字符串中的所有空格
  • 微信公众号内H5页面长按保存按钮保存自定义内容海报
  • python程序设计
  • videojs如何添加请求头
  • Ubuntu查询不到mysql状态
  • 这是为什么这是为什么
  • kettle每次运行如何清除特定文件夹下的缓存
  • fslinstall.py这个文件放进虚拟机怎么运行
  • vs code terminal 出错: bash: module: line 1: syntax error: unexpected end of file
  • 一个关于web端的问题
  • List<Map<String,Object> 按照两个规则排序
  • 基于RFID技术的图书管理系统
  • 为啥子一直显示不是闰年
  • @org.springframework.stereotype.Service这个方法

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华