Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP,防止删除前导零_Php_Math - Fatal编程技术网

PHP,防止删除前导零

PHP,防止删除前导零,php,math,Php,Math,我有一个从5到6.4的数字数组,但是这些数字与英尺和英寸有关,我用它们来计算 当我开始使用5.10时,它去掉了零,我的输出与5.1一样 是否存在阻止PHP删除0的任何方法。我想它会做一些默认的铸造 提前感谢您可以使用或手动铸造它 (链接即将发布)是的,它是 等等。5.10中的0如何成为前导零 我读作文不及格。printf/sprintf在强制输入两个有效数字的情况下工作得更好,不管后面的数字是否为零。您可以尝试使用 如果你的意思是“5英尺10英寸”,你不能用一个整数(或浮点数)来表示这一点,正如

我有一个从5到6.4的数字数组,但是这些数字与英尺和英寸有关,我用它们来计算

当我开始使用5.10时,它去掉了零,我的输出与5.1一样

是否存在阻止PHP删除0的任何方法。我想它会做一些默认的铸造


提前感谢

您可以使用或手动铸造它

(链接即将发布)

是的,它是

等等。5.10中的0如何成为前导零

我读作文不及格。printf/sprintf在强制输入两个有效数字的情况下工作得更好,不管后面的数字是否为零。

您可以尝试使用

如果你的意思是“5英尺10英寸”,你不能用一个整数(或浮点数)来表示这一点,正如你所看到的,你会遇到这样的大问题

计算机正按照您的要求运行(不一定是您的意图)。例如,谷歌告诉我5.8英尺=69.6英寸,比5英尺8英寸(=68英寸)稍高一些。但是,(浮动)5.10==(浮动)5.1==(浮动)5.100000(五加十分之一)

对于美国测量系统,您需要比
int
更复杂的东西,因为英尺和英寸在十进制中不能完全相互转换(IIRC,1英尺=12英寸,因此5英尺1英寸=5.083英尺,加上舍入误差)

查看,例如;它是一个PHP类的集合,允许您使用不同的度量标准,我认为也支持US/Imperial系统


编辑:如果其他所有操作都失败,您可以将两个数字转换为英寸-例如5'10”==(5*12)+10==70英寸,这是一个很好的整数。这些值在代码中的某个地方被隐式转换为浮点数。您需要找到该行并重写它以保持字符串类型。例如,您是否在数学表达式中使用这些值?

当使用非十进制单位(如英尺、英寸或时间)时,我喜欢使用我感兴趣的最小单位(秒或英寸)在内部跟踪值,然后转换为英尺和英寸以用于输出目的。我想你会发现这比尝试为此目的调整十进制数字要容易。

转换为公制是的,这就是我的意思。有什么好方法的建议吗?我有一个高度数组,5.1,5.2等,当我循环时,我需要使用除了piskvor提到的zend_度量之外,将英尺和英寸分开的关联数组是下一个最佳选择。例如,数组(英尺=>5,英寸=>1;);您必须使用自己的例程重载或替换加法和其他操作——无论如何,您都必须使用浮点表示法。我认为Zend Measure是我的选择。Thanksi无法在删除它后格式化它们,因为那将是5.1,也将是5.10。如下所述,我试图表示5t和10英寸这是一种非常可怕的表示混合基数的方法。从数学上讲,5.10相当于5.1。因此,我建议更改您的演示文稿,使其更清楚地表明您使用的是英尺和英寸。幽默?是的,在某种程度上。从大局的角度来看更可取?是的。始终实用?否。而度量更容易使用(因为所有的单位都是十进制的),在公制/英制之间来回转换会很快把你的代码弄得一团糟,甚至会使你的飞船崩溃(请参阅)
settype($bar, "string");  // $bar is now "1" (string)
$a = 5.10;

echo $a;            // prints 5.1

printf("%.2f",$a);  // prints 5.10