数字格式化每三位添加逗号千分位

发布于 2017-11-16 01:31:15 字数 2466 浏览 4511 评论 0

有時候我个必需将数字加上每三个位数加上一个逗号,例如 20000 变成 20,000,目的是为了在方便财务上阅读,所以我整理了以下四种解決的方法:

数字格式化每三位添加逗号千分位

JavaScript

一个迂回函式

function formatNumber(str) {
    if(str.length <= 3){
        return str;
    } else {
        return formatNumber(str.substr(0,str.length-3))+','+str.substr(str.length-3);
    }
}

使用方法如下,注意数字要以字符串输入:

var money = formatNumber('1234567890');
alert(money);

输出結果为:1,234,567,890

PHP内置函数

$number = 1234567890;
echo number_format($number, 3, ',' ,'');

輸出結果為:1,234,567,890

PHP自定义函数

function num_format($num){
	if(!is_numeric($num)){
		return false;
	}
	$rvalue='';
	$num = explode('.',$num);//把整数和小数分开
	$rl = !isset($num['1']) ? '' : $num['1'];//小数部分的值
	$j = strlen($num[0]) % 3;//整数有多少位
	$sl = substr($num[0], 0, $j);//前面不满三位的数取出来
	$sr = substr($num[0], $j);//后面的满三位的数取出来
	$i = 0;
	while($i <= strlen($sr)){
		$rvalue = $rvalue.','.substr($sr, $i, 3);//三位三位取出再合并,按逗号隔开
		$i = $i + 3;
	}
	$rvalue = $sl.$rvalue;
	$rvalue = substr($rvalue,0,strlen($rvalue)-1);//去掉最后一个逗号
	$rvalue = explode(',',$rvalue);//分解成数组
	if($rvalue[0]==0){
		array_shift($rvalue);//如果第一个元素为0,删除第一个元素
	}
	$rv = $rvalue[0];//前面不满三位的数
	for($i = 1; $i < count($rvalue); $i++){
		$rv = $rv.','.$rvalue[$i];
	}
	if(!empty($rl)){
		$rvalue = $rv.'.'.$rl;//小数不为空,整数和小数合并
	}else{
		$rvalue = $rv;//小数为空,只有整数
	}
	return $rvalue;
}
echo num_format('1234576');

输出:1,234,576

SQL函数

在執行SQL查詢時,就先將數字進行轉換動作

假設表單 salary(薪水)有一個名稱為 money (錢)的欄位

SELECT FORMAT(money, 4) FROM salary;

輸出結果將會把 money 的數字資料態轉為 xx,xxx,xxx 格式,以下為範圍輸出

SELECT FORMAT(12332.123456, 4);

--輸出結果為:12,332.1235

SELECT FORMAT(12332.2,0)

輸出結果為:12,332

SELECT FORMAT(12332.1,4)

輸出結果為:12,332.1000

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文