鱼C论坛

 找回密码
 立即注册
查看: 2313|回复: 2

[已解决]小数由十进制转换为十六进制代码怎么写?

[复制链接]
发表于 2023-3-15 22:33:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
print("'{:x}'".format(50))  # 十六进制
这个只能转换整数,请教下小数怎么转换,比如50.5
谢谢
最佳答案
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))[2:]
    hex_string += whole_hex
    hex_string += '.'
    fraction = float('0.' + fraction)
    for _ in range(precision):
        fraction *= 16
        digit = int(fraction)
        hex_string += hex(digit)[2:]
        fraction -= digit
        if fraction == 0:
            break
    return hex_string

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

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

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

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

注意:本方法的精度由 precision 参数控制,默认值为 6,也可以根据需要进行修改。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-15 22:36:55 | 显示全部楼层
>>> print("'{:.1f}'".format(50.5))
'50.5'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 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))[2:]
    hex_string += whole_hex
    hex_string += '.'
    fraction = float('0.' + fraction)
    for _ in range(precision):
        fraction *= 16
        digit = int(fraction)
        hex_string += hex(digit)[2:]
        fraction -= digit
        if fraction == 0:
            break
    return hex_string

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

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

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

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

注意:本方法的精度由 precision 参数控制,默认值为 6,也可以根据需要进行修改。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 07:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表