python - 如何在 python3 中使用非常小的浮点数(例如 8.5e-350)
问题描述
Python 2 中是否有类似 long 的类型可以处理非常小的数字,如 8.5e-350?或者在这种情况下有什么办法可以解决,因为 python 将小数点后 320 位后的浮点数抑制为 0?
解决方案
标准库自带十进制模块
十进制模块提供对快速正确舍入的十进制浮点运算的支持。它提供了优于浮点数据类型的几个优点。
...
与基于硬件的二进制浮点不同,十进制模块具有用户可更改的精度(默认为 28 位),可以根据给定问题的需要设置:
>>> from decimal import *
>>> getcontext().prec = 500
>>> Decimal(10) / Decimal(3)
Decimal('3.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333')
>>> len('3.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333')
501
推荐阅读
- c# - 使用 C# 通过 IP 进行实时语音聊天
- docker - Docker 无法启动 Nginx 和 Nginx htpasswd 从不检测
- ios - iOS swift以编程方式禁用wifi自动加入选项
- firebase - Firabase Functions 部署有错误
- css - 让按钮在同一行
- spring-boot - 带有 Spring Boot 的 Java 中的 Paypal 自适应支付
- c# - UWP 将 RAW 8 位转换为 PNG
- jquery - encodeURI 函数不编码括号“( )”
- php - ftp_login():请使用 TLS 安全机制重新连接
- tensorflow - 为什么要为 tf.keras.layers.LSTM 设置 return_sequences=True 和 stateful=True?