我正试图找到一种从数字中删除小数点的方法。
E.g。
1.11等于111
9.99等于999
1.1111等于11111
似乎无法找到我需要执行此操作的功能。我一直在谷歌上搜索这个功能,但没有运气。
我尝试过这些功能,但这不是我想要的:
floor(99.99) = 99
round(99.99) = 100
number_format(99.99) = 100
答案 0 :(得分:3)
这应该适合你:
<?php
$str = "9.99";
echo $str = str_replace(".", "", $str);
?>
输出:
999
答案 1 :(得分:3)
我们可以使用explode:
$num = 99.999;
$final = '';
$segments = explode($num, '.');
foreach ($segments as $segment){
$final .= $segment;
}
echo $final;
查看此演示:http://codepad.org/DMiFNYfB
针对任何本地设置变体推广解决方案,我们可以使用preg_split,如下所示:
$num = 99.999;
$final = '';
$pat = "/[^a-zA-Z0-9]/";
$segments = preg_split($pat, $num);
foreach ($segments as $segment){
$final .= $segment;
}
echo $final;
此外,还有另一种使用for循环的解决方案:
<?php
$num = 99.999;
$num = "$num"; //casting number to be string
$final = '';
for ($i =0; $i < strlen($num); $i++){
if ($num[$i] == '.') continue;
$final .= $num[$i];
}
echo $final;
答案 2 :(得分:2)
如果您只想删除小数,只需将其替换即可。
str_replace('.', '', $string);
答案 3 :(得分:2)
您可以将其视为字符串并删除.
字符:
$num = str_replace ('.', '', $num);
答案 4 :(得分:1)
尝试:
$num = 1.11; // number 1.11
$num_to_str = strval($num); // convert number to string "1.11"
$no_decimals = str_replace(".", "", $num_to_str); // remove decimal point "111"
$str_to_num = intval($no_decimals); // convert back to number 111
一行中的所有内容都是:
$num_without_decimals = intval(str_replace(".", "", strval(1.11)));