在我的数据库中,大多数数值都是DECIMAL(10,6)类型。它们是货币列。
现在,当我从mysql中检索数字时,我得到类似这样的内容
34.123456 //我想要这些
0.987654
500.000000 //我不想要这些
1.000000
是否有可能让数字自动显示为整数,并且在点之后将小数维持在我想要的精度,这样我就可以得到。
34.123456
0.987654
500个
1个
答案 0 :(得分:2)
如果您只想修改显示的数字,则可以将printf与%g
格式化程序一起使用,并指定最大精确位数:
printf ("%.10g", 123.456); // outputs "123.456"
printf ("%.10g", 123.456000000); // outputs "123.456"
printf ("%.10g", 123.000000000); // outputs "123"
printf ("%.10g", 1.234567891); // outputs "1.234567891"
答案 1 :(得分:0)
在PHP中,您可以在输出之前进行简单的整数比较:
echo ((int) $var == $var) ? (int) $var : $var;
作为一个快速/肮脏的例子,这段代码:
$var = '500.01';
echo ((int) $var == $var) ? (int) $var : $var;
echo "\n";
$var = '500.00';
echo ((int) $var == $var) ? (int) $var : $var;
产地:
500.01
500
答案 2 :(得分:0)
您可以CAST
将值添加到您希望在SQL端强制执行此类精度的任何类型,例如:
SELECT
CASE myNumber MOD 1
WHEN 0 THEN CAST(myNumber AS decimal(10,0))
ELSE myNumber
END
FROM myTable;