问题描述
我无法告诉你我的函数有多少次被破坏,因为它们需要一个实际的数字,比如 0.0000312345669999999971003061538521450302141602151095867156982422
,但我得到的是这样的:3.1234567E-5
。
有什么方法可以告诉 PHP 始终将这些数字自动转换为实际数字?我不明白谁会想要带有 E-
的东西,当你应该给它一个数字并且 PHP(和其他人)出于某种原因认为这会弄乱所有类型的检查、过滤器和假设时是一个有效的数字。
这些“特殊”号码是怎么回事?它为什么存在,为什么会有人需要、想要或喜欢它?
我已经有了转换它们的方法,所以我不会问如何手动转换它们。
解决方法
这些“特殊”号码是怎么回事?
以 3.72•1017 等形式表示数字的科学记数法是一种长期的做法,其起源可以追溯到几个世纪之前,而在此之前的先例。由于早期的计算机设备没有现代排版,只能打印简单的字符串,因此“E”代表指数,用于表示科学记数法的“十次幂”部分。
它为什么存在,为什么会有人需要、想要或喜欢它?
处理非常大或非常小的数字的人更喜欢指数表示法,因为它需要的字符比用纯十进制表示法写出的数字少得多,并且可以快速传达有关数字有多大或多小的信息。
有什么方法可以告诉 PHP 始终自动将这些数字转换为实际数字吗?
我对 PHP 不熟悉,但基于到目前为止还没有其他响应,我会冒险猜测不,没有办法更改 PHP 的默认值,但是您可以编写代码来选择它正在使用的格式,与 printf
和 %f
一样。
不明白谁会想要一些带有 E- 的东西,当你应该给它一个数字并且 PHP(和其他人)出于某种原因认为这是一个有效的数字。
指数表示法是一种有效的数字表示方式,就像没有指数表示法的十进制一样。两者都不是在自然界中发现的;两者都是人类发明的,并且都没有声称比另一个更有效。
大量软件使用指数表示法进行输入和输出。通常,如果您遇到指数表示法,您最好设计软件以接受它,而不是试图避免它。