从我的数据库中获取此信息:
252.587254564
我想删除.587254564
并保留252
,我该怎么做?
我应该使用什么功能,你能告诉我一个例子吗?
问候
答案 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
如果您只想删除小数而不使用舍入,您可以使用上述代码之一,除了 round
和 floor
(用于负数)。
但我推荐最后一种,使用前缀 ~~