python 浮点精度,Python浮点数精度问题(包含解决方案)
本文介绍和分享python的十进制和二进制转换方法(包括浮点数),同时做笔记。详情如下:
终于完成了。十进制到二进制的分数让我纠结了将近一个小时。
上传代码
#-*-编码:utf-8
来自医学导论医学
defBtod(n,pre=4):
将包含小数的二进制数n转换为十进制数
小数点后保留小数点前一位。
String_number1=str(n) #number1表示二进制数,number2表示十进制数。
Decimal=小数部分的0 #二进制值
标志=假
对于string_number1中的I:#判断是否有小数部分。
如果我== . :
标志=真
布莱克
If标志:#当十进制数包含小数部分时
String_integer,string _ decimal=string _ number 1 . split . #将整数部分与小数部分分开
傅立叶变换(len (string _ decimal)):
decimal=2 * *(-I-1)int(string _ decimal[I])#小数部分变成二进制
number 2=int(str(int(string _ integer,2 ) ) ) decimal
旋转(数字2,前))。
否则:#当十进制数只有整数部分时
Return int (string _ number1,2) #只有整数部分直接用二进制模式把一行代码转换成十进制python还是骚扰?
defdtob(n,pre=4):
将十进制数转换成二进制数
小数点后保留小数点前一位。
String_number1=str(n) #number1表示十进制数,number2表示二进制数。
标志=假
对于string_number1中的I:#判断是否有小数部分。
如果我== . :
标志=真
布莱克
if标志:
String_integer,string _ decimal=string _ number 1 . split . #将整数部分与小数部分分开
integer=int(string_integer).
Dell=Dell (str (n) )-整数
L1=[ 0,1 ]
l2=[]
decimal_convert=
虽然正确:
如果integer==0: break
x,y=divmod(integer,2) #x是商,y是余数。
L2。应用程序(y))。
整数=x
String _ integer=“”。join ([str (j) for j in L2 [:-1]])将整数部分转换为二进制
i=0
世界末日!=0且i pre:
result=int(decimal*2))
十进制=十进制* 2 -结果
decimal _ convert=decimal _ convert str(结果)
i=i 1
string _ number2=string _ integer . 十进制_转换
Floating (string _ number2))。
否则:#当十进制数只有整数部分时
L1=[ 0,1 ]
l2=[]
虽然正确:
如果n==0:断开
x,y=divmod(n,2) #x是商,y是余数。
L2。应用程序(y))。
n=x
string_number=“”。join([str(j ) for j in l2[:-1]])
Return int (string _ number))。
希望以上就是正文的全部内容,对大家的学习有所帮助。另外,希望大家能支持聚米学院。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。