如何回显一个双精度变量,但只在需要时显示小数位?

时间:2011-05-02 16:10:11

标签: php mysql

我的数据库中有一些双字段,当我在php中回显字段时,我会在值的末尾得到.00

如何让.00不显示,但显示是否有值?

5 个答案:

答案 0 :(得分:1)

您可以使用str_replace从值中删除“.00”。

$value = 10.00;
echo str_replace('.00', '', $value); // 10

$value = 10.52;
echo str_replace('.00', '', $value); // 10.52

答案 1 :(得分:1)

echo (int)$double;

将简单地剥离小数位。如果您只想隐藏“零”小数(10.00 - > 10),但保留非零小数(10.1 - > 10.1),那么您需要进行一些处理:

echo preg_replace('/\.0+$/', '', $double);

可以在小数位后处理任意数量的零,但保留非零值。

答案 2 :(得分:1)

if (fmod($number, 1) == 0)
{
    $number = intval($number);
}

else
{
    $number = round($number, 2);
}

或者只使用round() [@ ideone.com]:

var_dump(round($number = 5.00, 2)); // 5
var_dump(round($number = 5.01, 2)); // 5.01

答案 3 :(得分:1)

对于数字末尾的任意数量的0 s:

$number = rtrim($number,".0");

示例:

Input : 1.00
Result: 1

Input : 1.25
Result: 1.25

Input : 1.40
Result: 1.4

Input : 1.234910120000
Result: 1.23491012

答案 4 :(得分:0)

select number,if(number % 1 = 0,cast(number as unsigned),number) 
from table