字符串中小数后仅允许有一个字符


Allow only one character after decimal in a string?

我在数字中得到了一个字符串值,比如2345.567,我只想在小数后保留一个字符。我不想使用任何数字函数,我只想删除句点(点)后的任何数字字符?

如果你担心输入不是数字,你应该首先验证它:

function round_number($number, $precision = 1) {
    if(!is_numeric($number)) {
        throw new InvalidArgumentException("round_number() expects a numeric type, instead received '".gettype($number)."'");
    }
    return round($number, $precision);
}

参考:

  • round($number, $precision)
  • is_numeric($var)
$number =  2345.567; 
$new_numb = number_format($number,1);

$new_numb将被视为字符串

<?php
$str =  "2345.567";
$ip = explode('.',$str);
echo $ip[0].".".substr($ip[1],0,1)
?>

编辑后:

<?php
// case:  if there is no decimal place
echo $ip[0]."".($ip[1]?".".substr($ip[1],0,1):'');
?>
格式化字符串输出可以使用number_format或printf函数族来完成。
print number_format((float)$string, 1);
printf("%.1f", $string);

假设输入被保证是良好的形式。。。

substr($numberString, 0, strpos(".", $numberString) + 2);

您可以按照以下进行操作

$string = "234567.2345";
if(!is_numeric($string)) {
   $output = $string;
}
else{
   $output = round($string,1);
}

输出将是

234567.2

如果字符串是234

output will be 234.o

如果给定的字符串不是编号"asdf"

output will be asdf