首页 > 解决方案 > “E-”数字有什么意义,一般如何避免它们?

问题描述

我不能告诉你我的函数有多少次因为他们期望一个实际的数字而被破坏,例如0.0000312345669999999971003061538521450302141602151095867156982422,但我得到的是这样的3.1234567E-5

有没有办法告诉 PHP 总是自动将这些转换为实际数字?我不明白谁会想要一些东西,E-当你应该给它一个数字时,会搞乱各种检查、过滤器和假设,而 PHP(和其他人)出于某种原因认为这是一个有效的数字。

这些“特殊”数字是怎么回事?它为什么存在,为什么有人需要、想要或喜欢它?

我已经有办法转换它们,所以我不是在问如何手动转换它们。

标签: phpnumbersieee-754

解决方案


这些“特殊”数字是怎么回事?

以 3.72•10 17等形式表示数字的科学记数法是一种由来已久的做法,其起源可以追溯到几个世纪前,而在此之前就有了先例。由于早期的计算机设备没有现代排版,只能打印简单的字符串,因此代表指数的“E”被用来表示科学记数法的“十次方”部分。

它为什么存在,为什么有人需要、想要或喜欢它?

使用非常大或非常小的数字的人更喜欢指数表示法,因为它需要的字符比用简单的十进制表示法写出的数字要少得多,并且可以快速传达有关数字大小的信息。

有没有办法告诉 PHP 总是自动将这些转换为实际数字?

我对 PHP 不熟悉,但是由于到目前为止没有其他响应,我会冒险猜测是否,没有办法更改 PHP 的默认值,但是您可以编写代码来选择它使用的格式,就像printf%f

不明白谁会想要带有 E- 的东西,当你应该给它一个数字时,会搞乱各种检查、过滤器和假设,而 PHP(和其他人)出于某种原因认为这是一个有效的数字.

指数符号是表示数字的有效方式,就像没有指数符号的十进制一样。自然界中都没有。两者都是由人类发明的,并且没有一个声称比另一个更有效。

各种各样的软件使用指数符号进行输入和输出。一般来说,如果你遇到指数符号,你最好设计软件来接受它而不是试图避免它。


推荐阅读