将不带字符串的浮点分解为尾数和底数为10的指数

将不带字符串的浮点分解为尾数和底数为10的指数,第1张

将不带字符串浮点分解为尾数和底数为10的指数

避免字符串转换的一种方法是使用Decimals实现方法:

from decimal import Decimaldef fexp(number):    (sign, digits, exponent) = Decimal(number).as_tuple()    return len(digits) + exponent - 1def fman(number):    return Decimal(number).scaleb(-fexp(number)).normalize()

请注意,使用浮点数时,不进行舍入就无法计算尾数和指数。原因是浮点数以2为基数存储。例如,存储的float值

154.3
154.30000000000001136868377216160297393798828125
。浮点数在控制台中以准确的数字显示,因为(在CPython中)浮点数在使用硬编码精度17进行序列化时总是四舍五入。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5664668.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存