Delphi 货币数字转大写

Delphi 金额转大写 RAD Studio 10.2.3 测试√ 使用实例 procedure TForm_Tips.Button_MoneyConvertClick(Sender: TObject); var mMoneyNum: Real; begin mMoneyNum := 00000000; // 零元整 Memo_Log.Lines.Add(MoneyConvert(mMoneyNum)); mMoneyNum := 00100053; // 壹拾万零伍拾叁元整 Mem 阅读详情

这个函数是以前的代码,原来是在D7的环境下写的,现在用的是XE5。今天拷过来用,发现转换出来的结果不对,调整后代码如下:

【Delphi 7 环境】

function Changdx2(mmje: Double): String;
const
    s1: String = '零壹贰叁肆伍陆柒捌玖';
    s2: String = '分角元拾佰仟万拾佰仟亿拾佰仟万';

    function StrTran(const S, S1, S2: String): String;
    begin
        Result := StringReplace(S, S1, S2, [rfReplaceAll]);
    end;

var
    s, dx: String;
    i, Len: Integer;
begin
    if mmje < 0 then
    begin
        dx := '负';
        mmje := -mmje;
    end;

    s := Format('%.0f', [mmje*100]);
    Len := Length(s);

    for i := 1 to Len do
    begin
         dx := dx + Copy(s1, (Ord(s[i]) - Ord('0'))*2 + 1, 2) + Copy(s2, (Len - i)*2 + 1, 2);
    end;

    dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟', '零'), '零佰', '零'), '零拾', '零'), '零角', '零'), '零分', '整');
    dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零', '零'), '零零', '零'), '零亿', '亿'), '零万', '万'), '零元', '元');

    if dx = '整' then
       Result := '零元整'
    else
       Result := StrTran(StrTran(dx, '亿万', '亿零'), '零整', '整');
end;
 

【Delphi XE5 环境】

function Changdx2(mmje: Double): String;
const
    s1: String = '零壹贰叁肆伍陆柒捌玖';
    s2: String = '分角元拾佰仟万拾佰仟亿拾佰仟万';

    function StrTran(const S, S1, S2: String): String;
    begin
        Result := StringReplace(S, S1, S2, [rfReplaceAll]);
     end;

var
    s, dx: String;
    i, Len: Integer;
begin
    if mmje < 0 then
    begin
       dx := '负';
       mmje := -mmje;
    end;

    s := Format('%.0f', [mmje*100]);
    Len := Length(s);

    for i := 1 to Len do
    begin
        dx := dx + Copy(s1, (Ord(s[i]) - Ord('0')) + 1, 1) + Copy(s2, (Len - i)  + 1, 1);
    end;

     dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟', '零'), '零佰', '零'), '零拾', '零'), '零角', '零'), '零分', '整');
     dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零', '零'), '零零', '零'), '零亿', '亿'), '零万', '万'), '零元', '元');

    if dx = '整' then
      Result := '零元整'
    else
      Result := StrTran(StrTran(dx, '亿万', '亿零'), '零整', '整');
end;
 

Delphi货币类型转中文大写金额 在Delphi中,为了实现货币数值运算中的严格精度要求,内部把货币类型数据当作一个放大10000倍的64位整数来处理。这样根据64位整数的范围,可以得出货币类型Currency的范围是 [-922337203685477.5807; 922337203685477.5807]。 货币类型一个最常见的应用场景是金额大写转换,网上都是一些先将货币转字符串后再对字符串处理的代码,而且有些方法在有些情况 阅读详情

相关推荐

Delphi-字符串函数

Delphi字符串函数

Francis的博客 1155

7-35 英文字母的大小写转换

输入一个大写字母c1和一个小写字母c2,把c1转换成小写,c2转换成大写,然后输出。

- 814

Delphi 实现英文字母大小写转换.rar

Delphi 实现英文字母大小写转换功能,可以互相转换,可把小写转换成大写,也可把大写转换成小写,把需要转换的内容复制到文本框区域,单击右侧对应的功能按钮即可,使用方法超简单的哦。

Delphi 12种大小写转换的方法

第一种方法有多种方法,放在下面,大家可以依次去看。好久没写笔记了。呵呵。function TPrintfrm.NumToChar(n: Real): wideString; //可以到万亿,并可随便扩大constcNum: WideString = '零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分';      cCha: array[0..1, 0..11] of string =      (('零仟','零佰','零拾','零零零','零零',         '零亿','零万','零元','亿

zyyjc的专栏 4790

Delphi数字大小写转换程序实例.rar

Delphi数字大小写转换程序实例,并附有语音报号程序,实例在Delphi7.0下可顺利编译。主要是针对人民币的数字大小写转换,将阿拉伯数字转换成大写,具体定义:const mnUnit:WideString ='分角元';   const OtherWords:WideString='\u6574\u8d1f';   const hzUnit:WideString = '拾佰仟万拾佰仟亿';   const hzNum:WideString='\u96f6\u58f9\u8d30\u53c1\u8086\u4f0d\u9646\u67d2\u634c\u7396';   当从所取位置要取的字符数超过字符串长度时,修正所取字符串个数。

Delphi 大小写转换又一个简单例子.rar

Delphi 大小写转换,将输入的小写字符串转换成大写方式,使用方法 就不用介绍了吧,输入小写字符串,点击确认按钮,就可以将字符串转换成对应的大写了,程序运行的效果如示例截图所示。

数字转换大写人民币的delphi实现

文章来源:IT工程信息网  http://www.systhinker.com/html/09/n-12309.html之前用Access作一个应用,但找不到货币转换成大写人民币的功能(当然可以通过excel 转换,但不在一个应用上,放弃)。以为比较简单,自己试写,谁知用了两个晚上,才基本实现,但没有小数点(元)以下货币的转换。也没有兆的判断。而且对字符的合法性也没有检验。今天有时间,将其

SysThink的专栏 714

告别混乱!在Unity中为Best MQTT v3设计清晰的服务层:配置、连接、订阅发布模块拆分指南

本文详细介绍了如何在Unity中使用Best MQTT v3插件构建清晰的服务层架构,包括配置管理、连接服务、订阅管理和发布服务的模块化拆分。通过解耦设计、事件驱动和接口抽象,提升代码可维护性和可测试性,适用于物联网和实时通信开发场景。

weixin_30576827的博客 357

delphi 阿拉伯数字转换为大写金额

function Tform1.Num2CNum(dblArabic: double): string;const _ChineseNumeric = '零壹贰叁肆伍陆柒捌玖'; var sArabic: string; sIntArabic: string; iPosOfDecimalPoint: integer; i: integer; iDigit: integer;...

able87001的博客 273

UReport2 报表设计器 在线表格

UReport2官网 一、UReport2报表设计器 UReport2是一个开源的可视化报表设计器,功能强大,操作简单,可以实现复杂的报表统计,有各种各样的导出和打印功能,支持导入Excel表格! 1、报表设计器 2、设计一个简单的用户列表展示 二、可编辑表格 扩展了layui的表格,支持多元化数据编辑(单选,多些、日期、下拉联动),开发简单、高效、便捷。有了它就可以轻松开发类似进销存系统的表格录入功能了,用户拿来即用! 三、主从表录......

ejinxian的专栏 2万+

利用Skipper跨层追踪技术高效定位LVS Short问题

本文详细介绍了如何利用Skipper跨层追踪技术高效定位LVS Short问题。通过解析Skipper的跨层trace net原理和实战操作步骤,帮助芯片设计工程师快速识别版图中的短路问题,显著提升验证效率。文章还提供了处理大规模设计的高级技巧和常见问题排查方法。

weixin_29239661的博客 509

人民币大写源码

uses math; const mnUnit:WideString ='分角元'; const OtherWords:WideString='整负'; const hzUnit:WideString = '拾佰仟万拾佰仟亿'; const hzNum:WideString='零壹贰叁肆伍陆柒捌玖'; function Money2ChineseCapital2(const

piaoyao424的专栏 597

【域控制器EMC】域控制器EMC设计总结

汇总项目设计当中关于EMC的设计要点,主要从原理设计、Layout、结构、外设部分总结。满足要求的器件和合理的电路能降低电磁干扰;正确的布局、接地、信号路径、屏蔽等可以减少电磁辐射。结构件设计也会对EMC性能产生影响。

weixin_42098658的博客 1259

Delphi 将商品金额小写转大写

FunctionDecimalToChineseCurrency(Decimal:String):String;Var s,t:TStringList; i,ti:Integer; tmps:String; IsDecimal:I...

dengshisha4819的博客 136

论文研读 Corundum: An Open-Source 100-Gbps NIC

Corundum 通过在 FPGA 上构建并行 pipeline、高效 DMA 通道、无阻塞队列结构、低延迟调度器,实现了在 PCIe Gen3 x16 接口上稳定跑满 100Gbps 吞吐量。

Double Galaxy 489

YOLO11 改进 - C2PSA | C2PSA融合HEWL(高频增强小波层):小波逆变换+双通道注意力增强+高频显式增强 | TGRS 2026

本文介绍了高频增强小波层(HEWL),一种专为解决红外小目标检测中边缘退化与语义模糊问题设计的上采样模块。该方法结合小波逆变换与交替通道注意力(ALCA),通过显式增强高频细节并优化特征融合,实现精准的边缘重建与语义对齐。我们将 HEWL 融入 PSABlock 结构构建了 C2PSA_HEWL 模块,并成功集成进 YOLO11 的骨干网络,替代原有的 C2PSA 模块。实验证明,结合 HEWL 的 YOLO11 在检测任务中表现优异,有效提升了模型对细节特征的捕捉能力。

魔改工程师的博客 102

delphi代码转c#代码_[Delphi代码]数字转Word

delphi代码转c#代码Objective:目的: - This article will help user in how to convert their numeric value become words. -本文将帮助用户如何将其数值转换为单词。 How to...

cunchi8090的博客 667

【信息系统项目管理师】第1章:信息化发展 考点梳理

本文主要详细梳理高项:信息化、新型基础设施建设、两化融合、数字中国、数字化转型与元宇宙等内容。

数据知道的博客 8576

Delphi 实现数字转大写

从网上找的一段代码 /// <summary> /// 小写转大写 /// </summary> /// <param name="mmje"></param> /// <returns></returns> function MoneyConvert(mmje: real): string; const ...

weixin_30745553的博客 354

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 关于Delphi XE5 FastReport 4.0 导出为PDF乱码问题
下一篇: 关于TADOQuery的OnGetText
dds2014
博客等级 码龄12年 2粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值