Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除小数点,例如99.99=9999_Php - Fatal编程技术网

Php 删除小数点,例如99.99=9999

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(".",

我正试图找到一种从数字中去掉小数点的方法

例如

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(".", "", $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)));