Aiden_H 发表于 2023-3-15 22:33:37

小数由十进制转换为十六进制代码怎么写?

print("'{:x}'".format(50))# 十六进制
这个只能转换整数,请教下小数怎么转换,比如50.5
谢谢

人造人 发表于 2023-3-15 22:36:55

>>> print("'{:.1f}'".format(50.5))
'50.5'

isdkz 发表于 2023-3-15 22:42:08

要将十进制小数转换为十六进制,可以使用以下方法:

1.将小数部分乘以 16,将得到的整数部分转换为十六进制数字,并将剩余的小数部分重复此过程,直到小数部分为零或达到所需的精度。

2.将所有的十六进制数字组合起来,得到最终的十六进制表示。

下面是一个示例代码,可以将十进制小数转换为十六进制:

def decimal_to_hex(decimal, precision=6):
    hex_string = ''
    whole, fraction = str(decimal).split('.')
    whole_hex = hex(int(whole))
    hex_string += whole_hex
    hex_string += '.'
    fraction = float('0.' + fraction)
    for _ in range(precision):
      fraction *= 16
      digit = int(fraction)
      hex_string += hex(digit)
      fraction -= digit
      if fraction == 0:
            break
    return hex_string

# 测试代码
print(decimal_to_hex(50.5))# 输出: '32.8'

该函数使用 split 函数将十进制小数分割为整数部分和小数部分,并将整数部分转换为十六进制。

然后,它将小数部分乘以 16,取得整数部分,并将其转换为十六进制数字,

最终将所有的十六进制数字组合起来得到最终的十六进制表示。

注意:本方法的精度由 precision 参数控制,默认值为 6,也可以根据需要进行修改。
页: [1]
查看完整版本: 小数由十进制转换为十六进制代码怎么写?