[英]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.