当前位置:  开发笔记 > 编程语言 > 正文

python中的随机Decimal

如何解决《python中的随机Decimal》经验,为你挑选了3个好方法。

我如何获得随机decimal.Decimal实例?似乎随机模块只返回浮点数,这是一个转换为小数的皮塔饼.



1> bobince..:

什么是"随机小数"?小数具有任意精度,因此生成一个具有尽可能多的随机性的数字可以保存机器的整个内存.

你必须知道随机数中你想要多少个精度的十进制数字,此时只需抓取一个随机整数并除以它就很容易.例如,如果您想要点上方的两位数和小数中的两位数(请参阅此处的randrange):

decimal.Decimal(random.randrange(10000))/100



2> Kiv..:

从标准库参考:

要从float创建Decimal,请先将其转换为字符串.这可以明确提醒转换的详细信息(包括表示错误).

>>> import random, decimal
>>> decimal.Decimal(str(random.random()))
Decimal('0.467474014342')

你是这个意思吗?它对我来说似乎不是一个皮塔饼.您可以将其缩放到您想要的任何范围和精度.



3> Vinko Vrsalo..:

如果您知道在逗号之后和之前需要多少位数,您可以使用:

>>> import decimal
>>> import random
>>> def gen_random_decimal(i,d):
...  return decimal.Decimal('%d.%d' % (random.randint(0,i),random.randint(0,d)))

...
>>> gen_random_decimal(9999,999999) #4 digits before, 6 after
Decimal('4262.786648')
>>> gen_random_decimal(9999,999999)
Decimal('8623.79391')
>>> gen_random_decimal(9999,999999)
Decimal('7706.492775')
>>> gen_random_decimal(99999999999,999999999999) #11 digits before, 12 after
Decimal('35018421976.794013996282')
>>>

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有