用PHP实现小写金额转换大写金额的代码(精确到分)_php技巧

复制代码 代码如下:

/**
*数字金额转换成中文大写金额的函数
*String Int $num 要转换的小写数字或小写字符串
*return 大写字母
*小数位为两位
**/
function get_amount($num){
$c1 = "零壹贰叁肆伍陆柒捌玖";
$c2 = "分角元拾佰仟万拾佰仟亿";
$num = round($num, 2);
$num = $num * 100;
if (strlen($num) > 10) {
return "数据太长,没有这么大的钱吧,检查下";
}
$i = 0;
$c = "";
while (1) {
if ($i == 0) {
$n = substr($num, strlen($num)-1, 1);
} else {
$n = $num % 10;
}
$p1 = substr($c1, 3 * $n, 3);
$p2 = substr($c2, 3 * $i, 3);
if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {
$c = $p1 . $p2 . $c;
} else {
$c = $p1 . $c;
}
$i = $i + 1;
$num = $num / 10;
$num = (int)$num;
if ($num == 0) {
break;
}
}
$j = 0;
$slen = strlen($c);
while ($j < $slen) {
$m = substr($c, $j, 6);
if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
$left = substr($c, 0, $j);
$right = substr($c, $j + 3);
$c = $left . $right;
$j = $j-3;
$slen = $slen-3;
}
$j = $j + 3;
}

if (substr($c, strlen($c)-3, 3) == '零') {
$c = substr($c, 0, strlen($c)-3);
}
if (empty($c)) {
return "零元整";
}else{
return $c . "整";
}
}

时间: 2024-11-08 22:08:08

用PHP实现小写金额转换大写金额的代码(精确到分)_php技巧的相关文章

javascript-想要实现的是小写金额转换成大写金额

问题描述 想要实现的是小写金额转换成大写金额 我想要实现的是小写金额转换成大写金额,下边是我在网上找到的JS代码,我想问的是,我是不是只要将"numberValue"我想转变的小写金额就可以啦,求大神指导,我的需求就是把表格中一项"大写金额"变成大写.其实大写金额就是JSP页面上ruKu.shiJiJinE的值,请问各位大神怎么写 <TR> <TD align="left" class="tdp">规格

javascript-实现的是小写金额转换成大写金额,求求大神啦,在线等

问题描述 实现的是小写金额转换成大写金额,求求大神啦,在线等 我想要实现的是小写金额转换成大写金额,下边是我在网上找到的JS代码,我想问的是,我是不是只要将"numberValue"我想转变的小写金额就可以啦,求大神指导,我的需求就是把表格中一项"大写金额"变成大写.其实大写金额就是JSP页面上ruKu.shiJiJinE的值,请问各位大神怎么写 <TR> <TD align="left" class="tdp&quo

Excel人民币小写金额转换大写技巧

要将人民币小写金额转换成大写格式,用Excel提供的格式,将自定义格式类型中的"[dbnum2]G/通用格式"改为"[dbnum2] G/通用格式"元""来实现.但在转换小数时却出现了问题,比如¥6,050.09只能转换为"陆仟零伍拾.零玖圆".那么用Excel能不能解决这一先天不足呢?其方法有以下两种(以下均对B1转换,假设B1是通过函数ROUND( )四舍五入取得二位小数的小写金额数,其值为¥6,050.09). 一.在三

delphi实现小写金额转换

财务软件中总少不了大写的金额表示方式,如下为一个简单的小写金额转换为大写的函数,其思路简单(可以说烂吧,居然利用了位置来转换),但是它却几乎可以无限制的转换,只要你能读得出来和写得进去: function Tform1.SmallTOBig(small:real):string;var SmallMonth,BigMonth:string;wei1,qianwei1:string[2];wei,qianwei,dianweizhi,qian:integer;begin{------- 修改参数令

C#实现数字金额转换大写金额

代码的主调函数为ConvertSum,它的参数是string类型的数字字符串.在ASP.NET中调用方式如下: Label1.Text=ConvertSum("数字字符串"); 其代码如下:/// 转换数字金额主函数(包括小数) /// /// 数字字符串 /// 转换成中文大写后的字符串或者出错信息提示字符串 public string ConvertSum(string str) { if(!IsPositveDecimal(str)) return "输入的不是正数字!

PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)_php技巧

本文实例总结了PHP字符串处理技巧.分享给大家供大家参考,具体如下: Demo1.php <?php //源代码是文本形式,页面显示是 web 形式 $str = ' PHP '; //清理一下两边的空格 ltrim 只清理左,rtrim只清理右边 echo ltrim($str); echo '<br/>'; echo rtrim($str); echo '<br/>'; //两边都清理 echo trim($str); //echo chop($str); ?> D

PHP下编码转换函数mb_convert_encoding与iconv的使用说明_php技巧

不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码. mb_convert_encoding的用法见官方: http://cn.php.net/manual/zh/function.mb-convert-encoding.php 做一个GBK To UTF-8 复制代码 代码如下: <?php header(&qu

php将字符串转换成16进制的方法_php技巧

本文实例讲述了php将字符串转换成16进制的方法.分享给大家供大家参考.具体分析如下: php中可以通过bin2hex函数将字符串转换成16进制的形式输出,bin2hex()函数返回结果为ascii码 <?php $string = "Hello\tworld!\n"; print($string."\n"); print(bin2hex($string)."\n"); ?> 输出结果如下: Hello world! 48656c6c

php将日期格式转换成xx天前的格式_php技巧

本文实例讲述了php将日期格式转换成xx天前格式的方法.分享给大家供大家参考.具体如下: 这段代码可以把时间格式化成3天前,5秒前,2年前的形式 // convert a date into a string that tells how long ago // that date was.... eg: 2 days ago, 3 minutes ago. function ago($d) { $c = getdate(); $p = array('year', 'mon', 'mday',