PHP zerofill 数字不丢失小数

Posted

技术标签:

【中文标题】PHP zerofill 数字不丢失小数【英文标题】:PHP zerofill number without losing decimals 【发布时间】:2015-04-07 15:32:12 【问题描述】:

如何在不丢失小数的情况下对数字进行零填充? 我尝试使用 sprintf 但它删除了我所有的小数,这是我不想要的。

我有数字 12.2,我希望它看起来像 012.2,但 sprintf 给了我 012 并删除了小数。我使用的函数是:sprintf('%02u', $number);

【问题讨论】:

您认为u 是什么意思?嗯我猜signed;不,这意味着unsigned 然后你还想问为什么你看不到小数?并来自手册:u - the argument is treated as an integer, and presented as an unsigned decimal number. 【参考方案1】:

您对php manual 中的sprintf 格式有很好的解释,这也适用于printf

printf('%05.1f', 12.2);

输出:

012.2

【讨论】:

所以我可以使用 $new = sprintf('%05.1f', $old); 吗? 所以我刚刚发现使用这个函数,0.1 返回 00.1 但 30.1 返回 030.1,但我希望它们始终有两位数。这怎么可能?

以上是关于PHP zerofill 数字不丢失小数的主要内容,如果未能解决你的问题,请参考以下文章

PHP格式数字的小数部分

js解决数字运算丢失精度,保留小数位

php json_encode小数精度丢失的问题

php数字转化中 多位小数怎样处理

PHP检查数字没有小数比添加两个小数[重复]

MySQL DECIMAL 的使用