【发布时间】:2017-07-26 16:00:36
【问题描述】:
Python 库或 numpy 中是否有将浮点数作为输入并返回其十进制科学记数法分解的函数,即尾数和指数?或者是否有一种简单的方法可以在不使用字符串转换或使用 for 循环来确定指数的情况下完成此操作?编写这样一个函数并不难,我只是震惊地发现我在数学、十进制或 numpy 中找不到现有的函数。
例如如果 fexp 和 fman 是给出浮点数的十进制浮点表示的指数和尾数的函数,那么我们希望以下语句都返回 true:
fexp(154.3) == 2.0
fman(154.3) == 1.543
fexp(-1000) == 3.0
fman(-1000) == -1.0
简而言之,这将是math.frexp 的“十进制版本”。
【问题讨论】:
-
你能给出几种情况下的示例输入和预期输出吗?
-
那么 frexp 到底有什么问题呢?在我看来,这是最明显的起点。
-
freexp 是否有以 10 为底的选项?
-
您会接受任何舍入错误吗?不,它没有那个选项。
-
我在考虑舍入错误,但这有点超出了问题的要点。理想情况下,会有一个函数返回一个浮点表示的数字,该浮点表示与我们期望的数字的浮点表示相匹配,但舍入误差是可以接受的
标签: python