做财务的人遇到过这么一个问题,比如13,126.8元,在发票或者其他记账业务中,一般要使用大写进行拼读成“壹万叁仟壹佰贰拾陆元捌角整”。

这不,也贴上我原来在做学车网的一个php函数,供大家参考吧。

/**

* 人民币小写转大写

*

* @param string $number 数值

* @param string $int_unit 币种单位,默认"元",有的需求可能为"圆"

* @param bool $is_round 是否对小数进行四舍五入

* @param bool $is_extra_zero 是否对整数部分以0结尾,小数存在的数字附加0,比如1960.30

* @return string

*/

function rmb_format($money = 0, $int_unit = '元', $is_round = true, $is_extra_zero = false) {

// 将数字切分成两段

$parts = explode ( '.', $money, 2 );

$int = isset ( $parts [0] ) ? strval ( $parts [0] ) : '0';

$dec = isset ( $parts [1] ) ? strval ( $parts [1] ) : '';

// 如果小数点后多于2位,不四舍五入就直接截,否则就处理

$dec_len = strlen ( $dec );

if (isset ( $parts [1] ) && $dec_len > 2) {

$dec = $is_round ? substr ( strrchr ( strval ( round ( floatval ( "0." . $dec ), 2 ) ), '.' ), 1 ) : substr ( $parts [1], 0, 2 );

}

// 当number为0.001时,小数点后的金额为0元

if (empty ( $int ) && empty ( $dec )) {

return '零';

}

// 定义

$chs = array ('0', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' );

$uni = array ('', '拾', '佰', '仟' );

$dec_uni = array ('角', '分' );

$exp = array ('', '万' );

$res = '';

// 整数部分从右向左找

for($i = strlen ( $int ) - 1, $k = 0; $i >= 0; $k ++) {

$str = '';

// 按照中文读写习惯,每4个字为一段进行转化,i一直在减

for($j = 0; $j < 4 && $i >= 0; $j ++, $i --) {

$u = $int {$i} > 0 ? $uni [$j] : ''; // 非0的数字后面添加单位

$str = $chs [$int {$i}] . $u . $str;

}

$str = rtrim ( $str, '0' ); // 去掉末尾的0

$str = preg_replace ( "/0+/", "零", $str ); // 替换多个连续的0

if (! isset ( $exp [$k] )) {

$exp [$k] = $exp [$k - 2] . '亿'; // 构建单位

}

$u2 = $str != '' ? $exp [$k] : '';

$res = $str . $u2 . $res;

}

// 如果小数部分处理完之后是00,需要处理下

$dec = rtrim ( $dec, '0' );

var_dump ( $dec );

// 小数部分从左向右找

if (! empty ( $dec )) {

$res .= $int_unit;

// 是否要在整数部分以0结尾的数字后附加0,有的系统有这要求

if ($is_extra_zero) {

if (substr ( $int, - 1 ) === '0') {

$res .= '零';

}

}

for($i = 0, $cnt = strlen ( $dec ); $i < $cnt; $i ++) {

$u = $dec {$i} > 0 ? $dec_uni [$i] : ''; // 非0的数字后面添加单位

$res .= $chs [$dec {$i}] . $u;

if ($cnt == 1)

$res .= '整';

}

$res = rtrim ( $res, '0' ); // 去掉末尾的0

$res = preg_replace ( "/0+/", "零", $res ); // 替换多个连续的0

} else {

$res .= $int_unit . '整';

}

return $res;

}

使用就很简单了

$yuan=13598.3;

$ret=rmb_format($yuan);

php大写数字转换,PHP把数字转成人民币大写的函数分享相关推荐

  1. 数字转换成人民币大写格式(带界面)

    今天看了算法的公开课,有一个把数字转换成人民币大写的算法. 后面就想着自己写一个界面的,好几天没有写一个完整的程序的. 当然有一些BUG,没有时间优化,后面在慢慢优化. 自己的名言:每天努力一点儿,总 ...

  2. 把数字金额转换成人民币大写[原创]

    最近在用这个博客,感觉博客园不错,以前用的是新浪的,感觉这个更好,所以好多东西现在转到这边来了. 下面是一个数字转人民币大写的类,不啰嗦了,下面是代码:  1    /**/ /// <summ ...

  3. 数值转换成人民币大写的一个类

    网上有许多将数值转换成人民币大写的代码,其中有不少写得很好的.昨天在Csdn上浏览,觉得这个比较简洁,但也有几点小Bug,稍加整理,觉得仍然与财务表达方式有不一致的地方,故先贴上来,请大家看看. pu ...

  4. 关于数字转换成人民币大写的问题

    我们在参与大型项目时,难免会遇到数值转换人民币大写的情况.因为我今天接触了一个这样的转换,但原代码存在BUG,转换经常出现问题.于是我就去网上搜索了相关资源.由于没有找到相对权威的转换代码,网上给出的 ...

  5. JAVA浮点数转人民币读法_算法--java实现将数字转换成人民币大写(迅雷面试题)...

    public classRmb {/*** 人民币的基本信息和操作 * *@authorsoyoungboy *@version1.0*/ private double number; //人民币的数 ...

  6. oracle数字转换成人民币大写

    网上找了好几篇博客,测试或多或少有问题,以下已验证可以使用. create or replace function cux_convert_cny(p_num in number default nu ...

  7. java金额转换函数_将阿拉伯数字转换成人民币大写形式的JAVA工具类

    http://wallimn.iteye.com/admin/blogs/365769 public class MoneyUtil { private final static String[] C ...

  8. 超实用:数字金额转成人民币大写

    public static String arabiaToChinese(String number){if(isBlank(number)){return "零";}if(!is ...

  9. php 带逗号数字转换,php实现数字格式化,数字每三位加逗号的功能函数169856420=169,856,420...

    //php实现数字格式化,数字每三位加逗号的功能函数 //number_format("169856420"); 输出结果将为:169,856,420 public functio ...

最新文章

  1. STL源码剖析学习七:stack和queue
  2. leetcode || 50、Pow(x, n)
  3. 不同服务器之间进行传输
  4. python STL分解
  5. mysql下载安装及配置_mysql的下载,安装和配置
  6. jsp+servlet+mysql实现的图书管理系统源码
  7. java适合做平台_java不适合做单机web管理平台的2大因素
  8. Python:PDF文件转图像
  9. oracle授权怎么收费,Oracle数据库如何授权收费(Database Licensing)
  10. 举个栗子!Tableau 技巧(194):用参数自定义排序控件
  11. python抢淘宝的东西-Python实现淘宝秒杀功能
  12. Java超市会员管理系统
  13. 智星云平台MatDEM问题集
  14. 你的微信号安全吗?(附最新技术分享)
  15. java中的double相乘-------保留精度
  16. JavaScript复习笔记(三)数组及数组API
  17. 【论文泛读85】基于上下文的句子相似度
  18. 常见的SQL注入类型
  19. 【物联网智能网关-01】通过AD采集获取温湿度
  20. traceroute命令(unix)/tracert命令(windows)的工作原理

热门文章

  1. php变量值传递,PHP将值传递到包含文件中的变量
  2. hnu 暑期实训之A除以B
  3. caffemodel的大小计算
  4. 谷歌浏览器打开链接,如何不是覆盖当前页面而自动跳转到新标签页?
  5. maven Could not resolve dependencies
  6. IO流 (五) ----- 对象数据的序列化与反序列化
  7. 创建第一个RMI应用
  8. 敏捷开发“松结对编程”系列之八:微软 Tech ed2011 自组织团队与松结对编程讲稿(敏捷开发)...
  9. 项目经理的商务指南系列之三:认识客户(敏捷开发,被动而弱小的客户,理解客户的古怪行为,如何喜欢上客户)...
  10. bzoj3627: [JLOI2014]路径规划