我正在从php页面上的mysql数据库中检索浮点值(2.5,3.0等)
我想格式化这个值,这样如果它实际上是一个整数,它应该显示零小数位。 (它应输出3而不是3.0,但输出2.5为2.5)
实现这一目标的最简单方法是什么?
答案 0 :(得分:3)
我会尝试以下方式:
echo (intval($v) == $v) ? intval($v) : $v;
但我想知道是否有更有效的方式。
答案 1 :(得分:1)
您也可以在查询中进行格式化,它可能比在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 );
答案 2 :(得分:0)
如果你想控制小数点右边显示的位数,你也可以使用printf:
if (intval($v) == $v) printf("%d", intval($v)); else printf("%0.2f", $v);