PHP 数字转大写

<?php
header("content-type:text/html;charset=utf-8");
function numToRmb($num){
  $rmbNum = [‘零‘,‘壹‘,‘贰‘,‘叁‘,‘肆‘,‘伍‘,‘陆‘,‘柒‘,‘捌‘,‘玖‘];
  $rmbUnit = [‘分‘,‘角‘,‘元‘,‘拾‘,‘佰‘,‘仟‘,‘万‘,‘拾‘,‘佰‘,‘仟‘,‘亿‘,‘拾‘,‘佰‘,‘仟‘,‘万‘,‘拾‘,‘佰‘,‘仟‘];
  //数字预处理
  if($num == ‘‘ || $num == 0){
    return ‘请输入一个大于0的金额,谢谢!‘;
  }else {
    $num = number_format($num, 2, ‘.‘, ‘‘)*100;
  }
  if (strlen(number_format($num, 0, ‘‘, ‘‘))>18) {
    return ‘输入的金额不得超过千万亿!‘;
  }
  //开始数字转换人民币大写
  $out1 = 0;
  $numRmb = ‘‘;
  $unit = ‘‘;
  $rmb = ‘‘;
  for ($out1 = 0 ; $out1 < strlen(number_format($num, 0, ‘‘, ‘‘)) ; $out1++) {
    $numRmb = $rmbNum[substr(number_format($num, 0, ‘‘, ‘‘), $out1, 1)];
    $unit = $rmbUnit[strlen(number_format($num, 0, ‘‘, ‘‘))-$out1-1];
    $rmb = $rmb.$numRmb.$unit;
  }
  // 将大写人民币中的零进行调整
  $rmbStrlen = strlen($rmb);
  for ($out2=0; $out2 < $rmbStrlen; $out2=$out2+3) {
    $tempRmb = substr($rmb, $out2, 6);
    if ($tempRmb==‘零元‘||$tempRmb==‘零万‘||$tempRmb==‘零亿‘) {
      $left = substr($rmb, 0, $out2);
      $right = substr($rmb, $out2+3);
      $rmb = $left.$right;
      $out2 = $out2 - 3;
      $rmbStrlen = $rmbStrlen - 3;
    }elseif ($tempRmb==‘零拾‘||$tempRmb==‘零佰‘||$tempRmb==‘零仟‘) {
      $left = substr($rmb, 0, $out2+3);
      $right = substr($rmb, $out2+6);
      $rmb = $left.$right;
      $out2 = $out2 - 3;
      $rmbStrlen = $rmbStrlen - 3;
    }elseif ($tempRmb==‘零分‘||$tempRmb==‘零角‘) {
      $left = substr($rmb, 0, $out2);
      $right = substr($rmb, $out2+6);
      $rmb = $left.$right;
      $out2 = $out2 - 6;
      $rmbStrlen = $rmbStrlen - 6;
    }
    if ($tempRmb==‘零零‘) {
      $left = substr($rmb, 0, $out2);
      $right = substr($rmb, $out2+3);
      $rmb = $left.$right;
      $out2 = $out2 - 3;
      $rmbStrlen = $rmbStrlen - 3;
    }
    if(substr($rmb,strlen($rmb)-3)==‘元‘) {
      $rmb = $rmb.‘整‘;
    }
  }
  return $rmb;
}
echo numToRmb($_POST[‘num‘]);
 ?>

原文地址:https://www.cnblogs.com/lglblogadd/p/8434629.html

时间: 2024-11-09 17:30:22

PHP 数字转大写的相关文章

王小胖之数字转大写

使用场景:一般在书写正规金额的时候都要求填写大写数字. 实现功能:数字转大写功能主要实现:输入小写阿拉伯数字,转换成大写 数据实例:输入,12345678.90   输出,人民币:壹仟贰佰叁拾肆万伍仟陆佰柒拾捌元玖角 功能实现: Html代码 <div class="input-group"> <input name="kw" type="text" class="form-control" placehol

小写数字转大写

--小写数字转大写,只是单纯的将数字转换为大写了,还要加单位 create or replace function chinese(number1 number) return varchar2 is Result varchar2(30):=' '; v_chinese varchar2(25):='零壹贰叁肆伍陆柒捌玖'; v_char varchar2(10); begin for i in 1..length(number1) loop select substr(v_chinese,s

将金额数字转换为大写汉字的js函数

1 //将金额数字转换为大写汉字的函数 2 function convertCurrency(money) { 3 //汉字的数字 4 var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); 5 //基本单位 6 var cnIntRadice = new Array('', '拾', '佰', '仟'); 7 //对应整数部分扩展单位 8 var cnIntUnits = new Array('', '

c# 财务报表数字转大写的方法

/// <summary>/// 数字转大写/// </summary>/// <param name="Num">数字</param>/// <returns></returns> public static string CmycurD(decimal num) { string str1 = "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字 string str2 = "万仟佰

验证数字,大写字母,小写字母,特殊字符四选三组成的密码强度,且长度在8到30个数之间

验证数字,大写字母,小写字母,特殊字符四选三组成的密码强度,且长度在8到30个数之间 表达式: ^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\[email protected]#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\[email protected]#$%^&*`~()-+=]+$)(?![0-9\[email protected]#$%^&*`~()-+=]+$)[a-zA-Z0-9\[email protecte

数字转大写

转载:http://www.oschina.net/code/snippet_102306_4705 1.JS实现方法 static string ConvertToChinese(double x)     {         string s = x.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");         string d = Regex.Replace(s, @&quo

Java中金额数字转换为大写数字

注:该代码来自于别人,我引入进来并修改了里面的几个bug.现在写进我的博客里,以便于日后查看,和为其它博友们提供方便 修改bug地方:1.金额为0时,不加整.以前是零元整,现在是零元    2.修改"分", "角", "元","万", "亿","兆"位不会出现零 package com.zbx.bs.common.util;import java.math.BigDecimal; /**

如何将人民币数字转为大写

废话不说,直接上代码,实现传入数字输出人民币大写 let num="5556.4" console.log(numTocoggle(num)) function numTocoggle(num){ var regexp=/^\d+(([.]{1}(\d{0,2}))+){0,1}$/ if(regexp.test(num)){ /* 壹佰贰拾叁亿 伍仟陆佰捌拾捌万 捌仟伍佰伍拾伍元 伍角叁分*/ let digital=["零","壹",&quo

Delphi 实现数字转大写

从网上找的一段代码 /// <summary> /// 小写转大写 /// </summary> /// <param name="mmje"></param> /// <returns></returns> function MoneyConvert(mmje: real): string; const s1: string = '零壹贰叁肆伍陆柒捌玖'; s2: string = '分角元拾佰仟万拾佰仟亿拾佰仟