2

测试用例的标准化和工程科学记数法:最快的算法来计算数量

- >数的标准化科学记数法会是3.5 * 10E4

- >工程符号将是35 * 10E3

一个简单的算法,这样做会保持数字除10,直到我们得到所需的符号。然而,这意味着算法会是O(零的数量)。我们可以做得更好吗?

+0

如果是双倍数据,您可以直接提取尾数以获得非常好的第一个近似值,尽管这样会在双倍数不再存储的极端处正常化。 – 2012-01-29 17:11:41

+1

假设日志的快速实现,int exp = floor(log(x))和expEng = 3(exp/3) – 2012-01-29 17:34:21

+0

@ Adam,问题是日志有多高效? – unj2 2012-01-29 17:49:59

回答

5

有关打印浮点数的人性化表示的主题的经典论文可以阅读here。这太复杂了,不能在这里作为答案中的代码进行讨论。