PHP 编写函数实现千位分组
这个,其实PHP还是有自带函数的,number_format()
扩展阅读:http://www.w3school.com.cn/php/func_string_number_format.asp
不过有的时候我真的是太依赖自带函数了,可能其他语言没那么强大的函数库就死了吧,所以这里还是需要动动脑子的,正好弥补代码量不足的问题。
缺点在于:小数死……(这个缺点有空修复好了= =目前正在赶进度……)
先来核心函数
function format($num) {
$result = '';
while(strlen($num) > 3) { //当输入字符串长度大于3时
$result = ',' . substr($num, -3, 3) . $result;
$num = substr($num, 0, -3);
}
$result = $num . $result;
return $result;
}
使用strlen()
来判断字符串长度(因为input输出的是字符串形式)
我们这里还是使用substr()
来截取字符串
扩展阅读:http://www.php.net/substr
然后拼接。
完整版代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Number Format</title>
</head>
<body>
<form action="format.php" method="post">
<input type="text" placeholder="输入Number" name="number">
<input type="hidden" name="shot" value="shot">
<input type="submit" value="提交">
</form>
<?php
if(!empty($_POST['shot'])) {
$num = $_POST['number'];
$problem = FALSE;
if(!is_numeric($num)) {
$problem = TRUE;
echo "你确定你输入的数字吗";
}
if(!$problem) {
$result = format($num);
echo "转换后的数据为" .$result;
}
}
function format($num) {
$result = '';
while(strlen($num) > 3) { //当输入字符串长度大于3时
$result = ',' . substr($num, -3, 3) . $result;
$num = substr($num, 0, -3);
}
$result = $num . $result;
return $result;
}
?>
</body>
</html>
这里我们用is_numeric()
判断是否是数字或者数字字符串(因为是字符串不能用诸如is_int
之类的)
扩展阅读:http://www.php.net/manual/zh/function.is-numeric.php
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。