快速浮动代表

frepr的Python项目详细描述


FREPR

https://travis-ci.org/wemoloh/frepr.svg?branch=master

cpython的快速浮点repr()使用 https://github.com/google/double-conversion。大约快8倍 内置函数。

快速启动

>>>importfrepr>>>frepr.frepr(-1.8397892359791307e+134)'-1.8397892359791307e+134'>>>fromtimeitimporttimeit>>>timeit('repr(-1.8397892359791307e+134)')2.7296602272476758>>>frepr.install()>>>timeit('repr(-1.8397892359791307e+134)')0.35723431229251545>>>frepr.uninstall()

API

frepr.frepr(value)

返回浮点值的最短字符串表示形式。论据 不必是float,只要它可以强制为1(即 一个__float__()方法)。

frepr.install()

monkey修补python运行时。对浮动上repr()的后续调用 将使用更快的算法。这是安全的多次呼叫。

frepr.uninstall()

反转由install()完成的猴子修补。后续呼叫 repr()将使用原始的内置算法。这是安全的 多次,即使没有首先调用install()

功能

  • 平均值,比标准函数快约8X。(这个结果 在Python3.6.0 64位/Windows7/Intel Core i3@2.93GHz上获得。测试您的 使用tests/perf.py的自有系统。
  • 加快标准json包(以及任何依赖于 repr())。
  • 输出保证包含最短的十进制数字字符串 唯一标识原始ieee 754浮点值所必需的。
  • 保证满足value == ast.literal_eval(frepr(value))
  • 在cpython 2.6到3.6上测试过;可能也可以在其他版本上工作。

限制

  • 目前,还不支持替代的python实现(例如。 皮比)。
  • 输出可能与本机函数略有不同,原因是 浮点舍入(但请参阅上面的精度保证)。
  • 对将浮点转换为字符串的其他内置方法没有影响(例如 str()str.format()"%f""%g")。

另请参见

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
virtualbox无法从java移动共享文件夹中的文件   java如何连接Android 4.3.5(GA)的apache HttpClient库?   片段中的java Recyclerview未立即显示警报对话框结果   javac(n,r)计算器程序不工作   java使用BooleanQuery还是编写更多索引?   如何在java中设置y/n循环?   java不兼容的通用通配符捕获   java如何在安卓xml中编写数据绑定时的三元操作条件   java如何使用FileDialog?   java如何创建单元测试来检测是否有人使用错误的编码编辑了文件?   java如何从唯一的字符串生成唯一的int?   java gradletomcatplugin:log4j:WARN找不到记录器的附加程序   java我的动态编程解决方案(Kefa和第一步)在codeforces中有什么问题?   java每天更新两个数据库,使它们都包含相同的有效数据集   java如何检查给定的时间是否在时间限制之间   java在单个json POST上保存父级和子级   java如何获取Solr字段类型