字符串中只允许小数点后的一个字符?

时间:2012-07-28 07:21:42

标签: php

我的字符串值,如 2345.567 ,我想在小数点后只保留一个字符。我不想使用任何数字函数,我只是想在句点(点)之后删除任意数量的字符?

6 个答案:

答案 0 :(得分:4)

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

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);
}

参考:

答案 1 :(得分:3)

$number =  2345.567; 

$new_numb = number_format($number,1);

$ new_numb将被视为字符串

答案 2 :(得分:2)

<?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):'');
?>

答案 3 :(得分:1)

格式化字符串输出可以使用number_formatprintf系列函数完成。

print number_format((float)$string, 1);
printf("%.1f", $string);

答案 4 :(得分:0)

假设输入保证格式良好......

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

答案 5 :(得分:0)

您可以按照以下方式执行此操作

$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