gpt4 book ai didi

python - 在Python中将 float 转换为十进制类型

转载 作者:行者123 更新时间:2023-11-30 23:33:53 25 4
gpt4 key购买 nike

我有一个随着循环的每次迭代而增长的数组:

for i in range(100):
frac[i] = some fraction between 0 and 1 with many decimal places

这一切都运行良好。当我检查 type(frac[i]) 时,我被告知它是 'numpy.float64'

为了让我的代码达到我需要的精确度,我需要使用十进制模块并将每个 frac[i] 更改为十进制类型。

我更新了我的代码:

for i in range(100):
frac[i] = some fraction between 0 and 1 with many decimal places

frac[i] = decimal.Decimal(frac[i])

但是当我检查类型时,我仍然被告知 frac[i]'numpy.float64'

我之前已经成功地以这种方式将其他变量更改为十进制,所以我想知道你是否可以告诉我为什么这似乎不起作用。

谢谢。

最佳答案

根据您的分数的来源,您可能会发现使用 fractions 是理想的选择模块。文档中的一些示例:

>>> from fractions import Fraction
>>> Fraction(16, -10)
Fraction(-8, 5)
>>> Fraction(123)
Fraction(123, 1)
>>> Fraction()
Fraction(0, 1)
>>> Fraction('3/7')
Fraction(3, 7)
>>> Fraction(' -3/7 ')
Fraction(-3, 7)
>>> Fraction('1.414213 \t\n')
Fraction(1414213, 1000000)
>>> Fraction('-.125')
Fraction(-1, 8)
>>> Fraction('7e-6')
Fraction(7, 1000000)
>>> Fraction(2.25)
Fraction(9, 4)
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1'))
Fraction(11, 10)

您还可以执行所有常规算术运算;如果结果不能表示为分数,则会转换为 float :

>>> Fraction(3, 4) + Fraction(1, 16)
Fraction(13, 16)
>>> Fraction(3, 4) * Fraction(1, 16)
Fraction(3, 64)
>>> Fraction(3, 4) ** Fraction(1, 16)
0.982180548555

关于python - 在Python中将 float 转换为十进制类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18550880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com