由于计算机表示方法的问题,计算机中整数和浮点数的二进制表示是不同的。我们知道,如果要把一个10进制整数转化为相应的2进制数只要把10进制数不断的除2取余就可以了。而浮点数的小数部分是不一定能够用2进制来准确表示的,要将一个小数转化为相应的2进制数需要将小数部分不断的乘2,并截取相应的整数部分。比0.625转为二进制:
0.625*2 = 1.25, 整数部分为1,小数部分为0.25
0.25 * 2 = 0.5 , 整数部分为0,小数部分为0.5
0.5 * 2 = 1 , 整数部分为1,小数部分为0
所以0.625转换成2进制的值是0.101,但是,有的小数,比如0.4是不能精确转换成2进制数的:
0.4*2=0.8 整数部分为0,小数部分为0.8
0.8*2=1.6 整数部分为1,小数部分为0.6
0.6*2=1.2 整数部分为1,小数部分为0.2
0.2*2=0.4 整数部分为0,小数部分为0.4
……
所以0.4转化为2进制数为0.0110……
这样带来的问题是会在浮点数的运算中出现我们不希望出现的结果,特别是在进行结果的比较时。如0.1+0.1+0.1-0.3的结果是一个略大于0的数而不是0。解决这个问题的方法是使用decimal对象。它可以指定浮点数的精确度和round方法等信息(通过context对象),较多运用于金融货币等方面的比较。
分享到:
相关推荐
而python是以双精度(64)位来保存浮点数,多余的位会被截掉,所以看到的是0.1,但在电脑上实际保存的已不是精确的0.1,参与运算后,也就有可能点误差,特别是金融邻域里面,对精度更是要求更高,如何在Python中获取...
Python 中的数字类型包括整数、浮点数、复数、有理分数等,其中整数可以用不同进制表示,如二进制、八进制、十六进制等。Python 中的数字常量包括整数、浮点数、复数等,其中整数可以用不同进制表示,如二进制、八...
在 Python 中,数字类型可以分为整数、浮点数、复数等。整数可以用十进制、八进制、十六进制等表示。浮点数可以用小数点或科学计数法表示。复数由实部和虚部组成,可以是整数或浮点数。 1.1 Python 数字类型 ...
关于Python语言中的注释,询问哪个选项描述是错误的。 **答案解析**: - **选项A**: 单行注释以`#`开头 —— 正确。 - **选项B**: 单行注释以单引号`'`开头 —— **错误**。单引号`'`用于字符串定义,而非注释。 - ...
本文将深入探讨一个基于Python的实现,涉及IEEE 754标准的浮点数转换。该标准定义了计算机中浮点数的存储格式,包括单精度和双精度两种形式,广泛应用于各种计算和科学计算场景。 首先,让我们来理解IEEE 754浮点数...
在Python3编程语言中,了解最大整数和最大浮点数是非常重要的,因为这涉及到数值计算的边界和可能的溢出问题。这篇文章将详细介绍如何在Python3中获取这两个数值。 首先,我们来看最大整数。在Python3中,整数(int...
本周的PyCoder’s Weekly 上分享了一篇小文章,它里面提到的冷知识很有意思,我稍作补充,分享给大家。 它提到的部分问题,读者们可以先思考下: 若两个元组相等,即 a==b 且 a is b,那么相同索引的元素(如 a[0] ...
### Python基础语法详解 #### 1. 浮点数 ##### 1.1 浮点数基本概念 在Python中,浮点数是一种...以上是关于Python中浮点数和字符串的基础语法介绍。通过掌握这些基本概念,可以更好地理解和运用Python语言进行编程。
本文将详细介绍 Python 中浮点数的取整、格式化和 NaN 处理技法。 一、浮点数取整 浮点数取整是将浮点数转换为整数的过程。在 Python 中,有多种方法可以实现浮点数取整。 1. 强转 int 类型 强转 int 类型是将...
在Python中,数值类型是编程的基本元素之一,主要包括整数(int)和浮点数(float)。本节将深入探讨这两种类型的特点、操作以及它们在实际编程中的应用。 一、整数(int) 在Python 3.x中,整数类型没有大小限制,...
Python 浮点数表示及实现 ZhenToFu(z) 函数 Python 浮点数是一种非常重要的数据类型,它可以表示二进制混合数,即既包含整数部分又包含小数部分的二进制数。浮点数的表示方式由三个部分组成:符号位、阶码和尾数。...
在Python编程中,当涉及到JSON数据格式化时,特别是包含浮点数的场景,我们可能会遇到浮点数不精确的问题。这是因为计算机内部表示浮点数的方式(基于二进制的IEEE 754标准)导致的,这可能导致看似简单的浮点数在...
从文本文件中读入浮点数据,是最常见的任务之一,python没有scanf这样的输入函数,但我们可以利用正规表达式从读入的字符串中提取出浮点数 复制代码 代码如下:import refp = open(‘c:/1.txt’, ‘r’)s = fp....
### Python中精确输出JSON浮点数的方法 #### 背景与问题提出 在Python编程过程中,经常需要处理各种类型的数据结构,其中JSON作为一种轻量级的数据交换格式被广泛使用。JSON支持包括数字在内的多种数据类型,而在...
在Python编程中,进行浮点数运算时可能会遇到精度问题,因为浮点数在计算机内部是以二进制形式存储的,这可能导致某些十进制数无法精确表示,从而在计算时产生微小误差。例如,当尝试将4.2与2.1相加时,结果不是精确...
### Python中实现精确的浮点数运算详解 #### 引言 在计算机科学领域,浮点数运算一直是程序设计中的一个重要且复杂的话题。由于计算机内存的限制与实数集不可数性的矛盾,浮点数在计算机中的表示并不总是精确的。...
在Python中,常见的数据类型包括数值类型(如整数和浮点数)、序列类型(如列表和元组)、散列类型(如字典和集合)以及其他特殊类型(如布尔值和None)。这些数据类型使得我们能够处理现实世界中的各种信息,比如...
总的来说,这段代码提供了一个基础的Python浮点数运算和显示的例子,同时强调了Python中浮点数的双精度特性以及如何控制输出格式,便于理解和学习。在实际编程中,理解浮点数的运算和显示方式是非常重要的,特别是在...