数字格式化每三位添加逗号千分位 - 文章教程

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

发布于 2017-11-16 字数 2788 浏览 3612 评论 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

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

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

2583 文章
29 评论
84935 人气
更多

推荐作者

清风夜微凉

文章 1 评论 0

为你鎻心

文章 2 评论 0

xxhui

文章 0 评论 0

1PKOH46yx8j0x

文章 0 评论 0

Arthur

文章 0 评论 0