删除小数点,例如99.99 = 9999

时间:2015-01-06 22:47:59

标签: php

我正试图找到一种从数字中删除小数点的方法。

E.g。

1.11等于111

9.99等于999

1.1111等于11111

似乎无法找到我需要执行此操作的功能。我一直在谷歌上搜索这个功能,但没有运气。

我尝试过这些功能,但这不是我想要的:

floor(99.99) = 99
round(99.99) = 100
number_format(99.99) = 100

5 个答案:

答案 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)));