三九宝宝网宝宝百科宝宝知识

python的浮点数运算是不是精度有问题阿

01月06日 编辑 39baobao.com

[急急急急急急!初一数学乘方的简便运算](-2)的100次方+(-2)的101次方 = (-2)的100次方+(-2)的100次方*(-2) = (-2)的100次方+(-2)的100次方*(-1-1) =(-2)的100次方-(-2)的100次方-(-2)的100次方 =(-2)的100次方 (-0.125)的2010次...+阅读

再计算机的硬件中,浮点数以二进制小数表示。比如小数

[python] view plain copy

0.125

可看做1/10+2/100+5/1000,同样的方式二进制小数

[python] view plain copy

0.001

可看做0/2+0/4+1/8。这两个小数实际的值是相同的,唯一的不同是0.125是十进制表示,0.001是二进制表示。可是不幸的是,多数的十进制小数不能用二进制小数准确的表示。通常,你输入的十进制浮点数只能由存储在机器中的二进制浮点数近似表示。无论你使用多少位二进制数字,十进制的0.1都不能准确的由二进制小数表示,其是无限重复的小数

[python] view plain copy

0.0001100110011001100110011001100110011001100110011...

在一个运行python的典型计算机中,一个浮点数具有53位的精度,所以十进制的0.1在内部会以如下形式存储[python] view plain copy

0.00011001100110011001100110011001100110011001100110011010

实际中,我们很容易忘记存储的数据是原始十进制的的近似表示。Python只会显示出以二进制形式存储再计算机中的真正十进制数的近似数。如

[python] view plain copy

0.1000000000000000055511151231257827021181583404541015625

其中的多数位数都不会被人使用到,所以python只显示它的四舍五入后的值[python] view plain copy

0.1

在实际中有很多这样的例子可以说明:[python] view plain copy

>>> 0.1 + 0.2

0.30000000000000004

[python] view plain copy

>>> round(2.675, 2)

2.67

可以使用decimal模块,可以看到准确的浮点数的值。[python] view plain copy

>>> from decimal import Decimal

>>> Decimal(2.675)

Decimal('2.67499999999999982236431605997495353221893310546875')

以下为关联文档:

分数四则混合运算练习题11、计算下面各题,能简便计算的用简便方法计算。 9分之7÷5分之11+9分之2*11分之5 =9分之7*11分之5+9分之2*11分之5 =(9分之7+9分之2)*11分之5 =1*11分之5 =11分之5 88*(11分...

分数四则混合运算练习题45 * 2/3 + 1/3 * 15 7/19 + 12/19 * 5/6 1/4 + 3/4 ÷ 2/3 8/7 * 21/16 + 1/2 101 * 1/5 – 1/5 * 21 50+160÷40 (58+370)÷(64-45) 120-144÷18+35 347+45*2-4160÷52 (58+...

我要小数分数的四则运算题20道!9405-2940÷28*21 920-1680÷40÷7 690+47*52-398 148+3328÷64-75 360*24÷32+730 2100-94+48*54 51+(2304-2042)*23 4215+(4361-716)÷81 (247+18)*27÷25 36-720÷(360÷1...

比分数四则运算作业太太多,你好: 甲、乙卡片数的比是4:3,甲占总数的: 4÷(4+3)=4/7 甲给乙18张卡,那么甲的卡片数就是乙的2/3,甲占总数的: 2÷(2+3)=2/5 总数有: 18÷(4/7-2/5)=105(张) 甲原有: 105*4/(4+3)...

100以内数的连加连减加减混合运算练习题库0.8÷2= 0.27*1= 5.6÷7= 10*0.32= 3.21*1000= 0.9*3= 50*0.2= 70*0.6= 7.2÷0.9= 0.48÷4= 0*13.8= 0.8*0.5= 7.2+28= 1.2*0.5= 0.06*0.9= 4.5÷100= 2.4÷0.4= 0.25*8= 0....

20102010x2010x20112011简便运算是不是: 20102011x2012220102010x20112011 =20102011x(20102010+20000)-20102010x(20102011+10000) =20102011x2010220102011x20000-20102010x20102011-20102010x10000 =4020...

二进制数算术加运算二进制:10101010+00101010=11010100。 运算 1、加法 二进制加法有四种情况: 0+0=0,0+1=1,1+0=1,1+1=10(0 进位为1)。 2、乘法 二进制乘法有四种情况: 0*0=0,1*0=0,0*1=0,1*1=1...

二进制的运算规则1)二进制的运算算术运算 加法法则: 0+0=0;0+1=1; 1+0=1;1+1=10。 乘法法则: 0*0=0;0*1=0; 1*0=0;1*1=1。 上面列出的八条二进制运算法则可以归纳成八个字:“格式照旧,满二进一。...

分数小数的混合运算加减法100道1+1/5+1/6-1/12-1/1=? 1+1/5+1/6-1/12-1/2=? 1+1/5+1/6-1/12-1/3=? 1+1/5+1/6-1/12-1/4=? 1+1/5+1/6-1/12-1/5=? 1+1/5+1/6-1/12-1/6=? 1+1/5+1/6-1/12-1/7=? 1+1/5+1/6-1/1...

推荐阅读
图文推荐