php中的数字格式

Posted

技术标签:

【中文标题】php中的数字格式【英文标题】:number formatting in php 【发布时间】:2014-06-23 11:00:44 【问题描述】:

我想像下面这样格式化数字

13.20 to 13.2
13.34 to 13.34
13.00 to 13

我尝试使用 str_replace() 和 number_format() 的组合,但无法产生所需的结果。

如果有人有任何想法,请帮助我。

提前致谢

【问题讨论】:

检查最后的 0 并将其删除,如果是 '.'是在最后也删除它。 13.12345 会发生什么? 【参考方案1】:

尝试使用内置的round函数:

echo round(1.23456, 2); 

这将返回 1.23。当然,您必须决定保留小数点后多少个数字。

【讨论】:

这会产生 OP 想要的结果。【参考方案2】:

number_format 应该可以工作:

<?php
    $number = 12.345;
    echo number_format($number, 1); # Produces number with one decimal precision.
?>

编辑:

<?php
    $number = 12.30;

    #Strips ZEROs and decimal point from the end
    echo rtrim($number, '0.'); #Result: 12.3
?>

【讨论】:

他只是想删除我猜结果中最后附加的'0'。因为他保持 13.34 的原样 只有当小数点后的值像 .30 时,我才想要一位小数,如果值像 0.34 .55,我想要两位小数 如果编号为12.34会发生什么??输出将是 12.3 添加了另一个解决方案 - 它将从右侧删除 0.13.45 => 13.45, 13.40 => 13.413.00 => 13 @NaN 见文森特·德科的回答。【参考方案3】:

或者简单地说,这很神奇:

$number + 0

// 12.30 + 0 = 12.3 

或者您可以将您的号码转换为浮动:

echo floatval($number);

【讨论】:

【参考方案4】:

这取决于您使用的变量类型。字符串13.20 将输出13.20,但float 13.20 将输出13.2

你所要做的就是投射它:

echo (float) '13.20'; // Will output 13.2

【讨论】:

以上是关于php中的数字格式的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的数字格式不正确[重复]

PHP中的数字格式5.5到5.50

如何在 PHP 数组中对格式项目进行编号

php格式化数字?

PHP中科学计数法中的数字不正确

高级 PHP 数字格式