删除PHP中的所有小数

时间:2011-02-04 21:35:38

标签: php database

从我的数据库中获取此信息:

252.587254564

我想删除.587254564并保留252,我该怎么做?

我应该使用什么功能,你能告诉我一个例子吗?

问候

11 个答案:

答案 0 :(得分:15)

你可以在PHP中完成:

round($val, 0);

或在你的MYSQL声明中:

select round(foo_value, 0) value from foo

答案 1 :(得分:7)

您可以简单地转换为int

$var = 252.587254564;
$var = (int)$var; // 252

答案 2 :(得分:5)

在PHP中,您将使用:

$value = floor($value);

floor:如有必要,通过舍入值来返回下一个最小的整数值。

如果你想要整理,那就是:

$value = ceil($value);

ceil:如有必要,通过向上舍入值返回下一个最高整数值。

答案 3 :(得分:4)

正如Tricker所提到的,你可以将值向下舍入,或者你可以将它转换为int,如下所示:

$variable = 252.587254564; // this is of type double
$variable = (int)$variable; // this will cast the type from double to int causing it to strip the floating point.

答案 4 :(得分:3)

您可以将其投放到int

$new = (int)$old;

答案 5 :(得分:1)

您可以使用echo (int) 252.587254564;

答案 6 :(得分:1)

还有一个不太明智的方法:

strtok($value, ".");

第一部分切割直到遇到点。结果将是一个字符串,而不是PHP整数。虽然它不会影响使用结果,但它不是最好的选择。

答案 7 :(得分:1)

将浮点数转换为字符串,并使用intval将其转换为整数将得到1990

intval(("19.90"*100).'')

答案 8 :(得分:0)

在MySQL中你可以使用:

select floor(field)

或在PHP中,您可以使用:

floor($value);

答案 9 :(得分:0)

使用以上答案之前,您的确切要求是什么,请参见下面的示例输出。

$val = 252.587254564;

echo (int)$val; //252
echo round($val, 0); //253
echo ceil($val); //253


$val = 1234567890123456789.512345;

echo (int)$val; //1234567890123456768
echo round($val, 0);//1.2345678901235E+18
echo ceil($val); //1.2345678901235E+18


$val = 123456789012345678912.512345;

echo (int)$val; //-5670419503621177344
echo round($val, 0);//1.2345678901235E+20
echo ceil($val); //1.2345678901235E+20

答案 10 :(得分:0)

正数:

round(252.587254564) // 253
floor(252.587254564) // 252
ceil(252.587254564) //252
(int)252.587254564 // 252
intval(252.587254564) // 252
~~252.587254564 // 252

负数:

round(-252.587254564) // -253
floor(-252.587254564) // -253
ceil(-252.587254564) // -252
(int)-252.587254564 // -252
intval(-252.587254564) // -252
~~-252.587254564 // -252

如果您只想删除小数而不使用舍入,您可以使用上述代码之一,除了 roundfloor(用于负数)。

但我推荐最后一种,使用前缀 ~~