繁体   English   中英

在PHP中有条件地格式化浮点数

[英]Conditional formatting of a float in PHP

我正在从php页面上的mysql数据库中检索浮点值(2.5,3.0等)

我想格式化这个值,如果它实际上是一个整数,它应该显示零小数位。 (它应输出3而不是3.0,但输出2.5为2.5)

实现这一目标的最简单方法是什么?

我会尝试以下方面:

echo (intval($v) == $v) ? intval($v) : $v;

但我想知道是否有更有效的方式。

您也可以在查询中进行格式化,它可能比在php中执行格式化更快,特别是如果您要处理许多行。

就像是:

SELECT
    CASE 
        WHEN t.myColumn % 1 = 0 
            THEN FORMAT( t.myColumn, 0 ) 
            ELSE FORMAT( t.myColumn, 2 )
    END AS `formatted`
    ...
FROM myTable t
WHERE ...

如果你想在数据库之外做这个方法,同样的方法适用于php:

$displayValue = $myValue % 1 == 0 
    ? number_format( $myValue, 0 ) 
    : number_format( $myValue, 2 );

如果要控制小数点右侧显示的位数,也可以使用printf:

  if (intval($v) == $v) printf("%d", intval($v)); else printf("%0.2f", $v);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM