我得到了一个数字字符串值,比如2345.567,我只想保留小数点后的一个字符。我不想使用任何数字功能,我只想在句点(点)之后删除任意数量的字符?
问问题
1502 次
6 回答
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);
}
参考:
于 2012-07-28T07:40:10.147 回答
3
$number = 2345.567;
$new_numb = number_format($number,1);
$new_numb 将被视为字符串
于 2012-07-28T07:25:50.877 回答
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):'');
?>
于 2012-07-28T07:34:31.653 回答
1
格式化字符串输出可以使用number_format或printf系列函数来完成。
print number_format((float)$string, 1);
printf("%.1f", $string);
于 2012-07-28T07:27:16.860 回答
0
假设输入保证格式正确......
substr($numberString, 0, strpos(".", $numberString) + 2);
于 2012-07-28T07:29:34.543 回答
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
于 2012-07-28T07:45:18.787 回答