Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么时候;“存储和打印”;python中的变量(“十进制到二进制”和“二进制到十进制”转换)_Python_Binary_Numbers_Decimal_Data Conversion - Fatal编程技术网

什么时候;“存储和打印”;python中的变量(“十进制到二进制”和“二进制到十进制”转换)

什么时候;“存储和打印”;python中的变量(“十进制到二进制”和“二进制到十进制”转换),python,binary,numbers,decimal,data-conversion,Python,Binary,Numbers,Decimal,Data Conversion,在python中使用浮点类型时 ex:>>a=0.2 >> a >> 0.2 在上述示例中,当在变量“a”中存储“0.2”时,它将以二进制格式在内部存储为“0.0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011” 当尝试打印变量a时,它将二进制转换为十进制(浮点)转换为“0.199 999 999 818 101 059 6

在python中使用浮点类型时

ex:>>a=0.2

  >> a

  >> 0.2
在上述示例中,当在变量“a”中存储“0.2”时,它将以二进制格式在内部存储为“0.0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011”

当尝试打印变量a时,它将二进制转换为十进制(浮点)转换为“0.199 999 999 818 101 059 645 414 352 416 992 187 5”

当“0.1+0.2-0.3不等于0.0”(这不是近似值)时,则
它是如何在输出中打印为“0.2”的?

以下是使用各种python函数时数字的外观

import struct
value=0.2
data = struct.pack('d',value) 
print(data)   # -->  b'\x9a\x99\x99\x99\x99\x99\xc9?'
b'\xcd\xccL>'.hex()  # -->  '9a9999999999c93f'
 bin(0x9a9999999999c93f)      #--> '0b1001101010011001100110011001100110011001100110011100100100111111'
struct.unpack('d',data)  #--> (0.2,)
它是圆形的。(同样,这些不是正确的值。)当“0.1+0.2-0.3”不等于0.0(它不是近似值)时,它如何在输出中打印为“0.2”?当“0.1+0.2-0.3不等于0.0”(它不是近似值)时,它如何在输出中打印为“0.2”?