Php 删除小数点,例如99.99=9999
我正试图找到一种从数字中去掉小数点的方法 例如 1.11等于111 9.99等于999 1.1111等于11111 似乎找不到执行此操作所需的函数。我一直在谷歌上寻找这个函数,但运气不好 我已经尝试过这些功能,但这不是我想要的:Php 删除小数点,例如99.99=9999,php,Php,我正试图找到一种从数字中去掉小数点的方法 例如 1.11等于111 9.99等于999 1.1111等于11111 似乎找不到执行此操作所需的函数。我一直在谷歌上寻找这个函数,但运气不好 我已经尝试过这些功能,但这不是我想要的: floor(99.99) = 99 round(99.99) = 100 number_format(99.99) = 100 这应该适合您: <?php $str = "9.99"; echo $str = str_replace(".",
floor(99.99) = 99
round(99.99) = 100
number_format(99.99) = 100
这应该适合您:
<?php
$str = "9.99";
echo $str = str_replace(".", "", $str);
?>
如果您只想删除小数点,您可以替换它
str_replace('.', '', $string);
您可以将其视为字符串并删除
字符:
$num = str_replace ('.', '', $num);
我们可以使用explode:
$num = 99.999;
$final = '';
$segments = explode($num, '.');
foreach ($segments as $segment){
$final .= $segment;
}
echo $final;
签出此演示:
将解决方案推广到任何本地设置变化,我们可以使用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;
试试:
一行中的所有内容类似于:
$num_without_decimals = intval(str_replace(".", "", strval(1.11)));
将其转换为字符串并使用str\u replace
。如果需要解决方案,请使用preg\u split
检查我的答案,包括本地设置的变化,即99,99此答案的缺点(以及当前发布的所有其他答案)它将使“99.99.99”变为“999999”,因为没有检查来确保“.”只存在一次。因此,在调用str_replace之前,必须验证用户输入。除此之外,答案很简单。
$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)));