在 Python 的 Decimal 类中设置精度

2023-11-26

我刚刚学习了Python中的Decimal类,在修改十进制数字的精度时遇到了一些问题。代码:

from decimal import *

def main() :
  getcontext().prec = 50
  print Decimal(748327402479023).sqrt()

if __name__ == '__main__' :
  main()

输出:

27355573.51764029457632865944595074348085555311409538
1.414213562373095048801688724209698078569671875376948

它不显示 50 位十进制数字,而是显示总共 50 位数字。有没有办法来解决这个问题?

Edit:

我正在解决一个需要大浮点精度的问题。这就是为什么我必须使用Python。现在,如果问题的答案是 0.55,我应该打印 0.55 后跟 48 个零......


一种方法是设置prec比你需要的高得多,然后使用round。 Python 3:

>>> getcontext().prec=100
>>> print(round(Decimal(748327402479023).sqrt(), 50))
27355573.51764029457632865944595074348085555311409538175920
>>> print(round(Decimal(7483).sqrt(), 50))
86.50433515148243713481567854198645604944135142208905

对于 Python 2,执行以下操作:

>>> print Decimal(748327402479023).sqrt().quantize(Decimal('1E-50'))
27355573.51764029457632865944595074348085555311409538175920

The value for prec depends on how large your numbers are, but it has to be greater than log10 of your number, or you will get a decimal.InvalidOperation: quantize result has too many digits for current context exception.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 的 Decimal 类中设置精度 的相关文章

随机推荐

  • 沿坐标列表给出的路径向量化半正矢距离计算

    我有一个坐标列表 可以使用以下方法计算所有点之间的距离矩阵半正矢距离公制 坐标为numpy array形状的 n 2 of latitude longitude pairs 16 34576887 107 90942116 12 49474
  • 从 CreateAnonymousThread 更新 VCL 组件

    看来哪一个同步不能从使用创建的线程中使用创建匿名话题 所以问题是 How i can update a VCL component from inside of a Thread created using CreateAnonymousT
  • 非导出活动:在模拟器上启动;手机上的安全异常

    我有一个非出口活动在我的项目中 如果我尝试使用以下命令在手机上启动它adb adb shell am start n packagename activityname 我收到错误 java lang SecurityException Pe
  • 使用 PDO 准备好插入后获取最后一个插入 ID

    我在一个新项目中使用 PHP PDO 和 PostgreSQL 给定以下函数 如何返回刚刚插入的行的 id 它并不像现在看起来的那样工作 function adauga administrator detalii global db ult
  • PHP 中的语音识别?

    我正在寻找 PHP 中的语音识别 我有很多 wav 文件 10 15 秒 我希望语音识别能够识别每个 wav 文件中的 1 或 2 个单词 然后将其标记到数据库或 csv 所有文件都有相同的声音和口音 同一个人哈哈 伪代码示例 voice
  • Mono.Cecil:从其他程序集调用GENERIC基类的方法

    我正在跟进我之前的问题 Mono Cecil 从其他程序集中调用基类的方法 我正在做同样的事情 但如果我的基类是通用的 它就不起作用 in Assembly A class BaseVM
  • 从 Android 中的本地资源加载 jQuery 以用于远程 html 页面

    我正在尝试从 Android webview 读取存储在资产中的本地 javascript 文件 jQuery 我不想加载 with base url 因为我的图像和 html 是远程提供的 总结一下 将本地 jQuery 在资产文件夹中
  • AttributeError:未知属性 color_cycle

    我正在学习 pandas 并尝试绘制id列 但我收到错误AttributeError Unknown property color cycle和空图 该图仅出现在交互式 shell 中 当我作为脚本执行时 我得到相同的错误 除了图表没有出现
  • 使用 MSAL 的访问令牌/刷新令牌

    我对 OAuth2 以及 AccessToken 和 RefreshToken 的概念比较熟悉 使用 ClientApplicationBase AcquireTokenSilentAsync 时 MSAL 似乎正在为我们做一些工作 我不清
  • MVVM Light Messenger 多次执行

    我正在使用 MVVM Light 并使用消息在 ViewModel 之间进行通信 让 ViewModel 知道何时可以执行某些操作 我的问题是我注册了一条消息 然后它多次收到它 因此 为了防止我的程序多次执行某些操作 我必须创建布尔标志来查
  • 使用由明确定义的归纳定义的递归函数进行计算

    当我使用Function在 Coq 中定义一个非结构递归函数 当要求进行特定计算时 生成的对象会表现得很奇怪 事实上 不是直接给出结果 而是Eval compute in 指令返回一个相当长 通常为 170 000 行 的表达式 Coq 似
  • 打开带有空格的本地 Android 文件

    我正在尝试使用意图在 Android 4 0 中打开本地文件 以下是执行该操作的代码 只要文件没有特殊空格 例如 如果文件是 data data com xxxx yyyy files Downloads Documents Product
  • 什么是 kthreadd_task

    在kthread create的定义中 有一个任务被唤醒 有谁知道这个任务在做什么吗 struct task struct kthread create struct kthread create info create create th
  • java部分类

    小序言 我是 1 4 jdk 的优秀 java 开发人员 之后我切换到了另一个平台 但在这里我遇到了问题 所以问题是关于jdk 1 6 或更高版本 我有3个耦合类 耦合的本质与本机方法有关 波纹管是这 3 类的示例 public inter
  • 如何删除未使用的序列?

    我们正在使用 PostgreSQL 我的要求是从我的数据库中删除未使用的序列 例如 如果我通过应用程序创建任何表 则会创建一个序列 但为了删除该表 我们也不会删除该序列 如果想要创建相同的表 则正在创建另一个序列 示例 表 file 自动创
  • 我可以用 d3 附加文字 SVG 元素吗?

    我想用 d3 附加一个文字 SVG 元素 所以而不是写 svg selectAll circle data data enter append circle etc etc 我想做 svg selectAll circle data dat
  • iPhone 中收到警告:NSString 可能不会响应“-JSONValue”

    在我的 iPhone 应用程序中 我正在访问网络服务器以获取数据 这里我使用 JSON 从数据库中检索数据 我收到一条警告 NSString 可能不会响应 JSONValue 如何解决呢 添加这个 import JSON h 在你的顶部 m
  • Dagger2:如果没有 @Provides 注释的方法,则无法提供 ViewModel

    我正在遵循使用的架构Github浏览器示例由谷歌 但在建设项目的过程中却遇到了麻烦 我已经将项目迁移到AndroidX 我已经尝试了 StackOverflow 上的许多答案 但都没有成功 这是我在构建时遇到的构建异常 e windows
  • 如何获取user.config路径中的哈希值?

    我已经安装了 NET应用程序 它的配置位置是 AppData CompanyName ExeName Url hash version user config 我需要得到 hash 来自另一个应用程序的值 根据MSDN user confi
  • 在 Python 的 Decimal 类中设置精度

    我刚刚学习了Python中的Decimal类 在修改十进制数字的精度时遇到了一些问题 代码 from decimal import def main getcontext prec 50 print Decimal 748327402479