PowerBuilder -- 数字金额大写
//====================================================================
// 事件: .pub_fc_change_number()
//--------------------------------------------------------------------
// 描述: 数字转换成大写
//--------------------------------------------------------------------
// 参数:
// decimal number
//--------------------------------------------------------------------
// 返回: string//--------------------------------------------------------------------
// 修改历史:
//
//====================================================================
String cn_num[] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"} //大写0-9
String cn_carry[] = {"分","角","","元","拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟","万","拾","佰","仟"} //单位
String ls_pos,ls_old,ls_number,ls_rc = '', ls_zero, ls_zero_unit
Integer li_i,li_len //循环变量
String ls_zf = '' //正负符号
String ls_value, ls_z
Boolean lb_zero_yuan
//参数格式化
If ade_number < Then
ls_zf = '负'
ade_number = (-)*ade_number
End If
ls_number = String(ade_number,"0.00")
//参数的长度
li_len = Len(ls_number)
ls_zero = ''
ls_zero_unit = ''
lb_zero_yuan = False
ls_z = ''
//转换为大写(发票格式),从右到左
For li_i = To li_len
ls_value = Mid(ls_number, li_len - li_i + , )
If li_i = And ls_value = '' Then
// 分 为0
ls_z = '整'
Continue
End If
If li_i = And ls_value = '' And ls_z <> '整' Then
// 角 为0, 分不为 0
ls_rc = '零' + ls_rc
Continue
End If // 小数点
If li_i = Then Continue // 万与元,亿与万之间 存在 0
If (li_i = Or li_i = ) And ls_zero = '零' Then
ls_rc = '零' + ls_rc
ls_zero = ''
End If // 元 万 亿 为0
If li_len > And (li_i = Or li_i = Or li_i = ) And ls_value = '' Then
ls_rc = cn_carry[li_i] + ls_rc
lb_zero_yuan = True
Continue
End If
// 万与元,亿与万之间 存在 0
If li_len > And li_i > And ls_value = '' And ls_zero = '' And Not lb_zero_yuan Then
ls_zero = '零'
End If If ls_value <> '' Or li_i = Then
ls_rc = cn_num[ + Mod(Integer(ls_value), )] + cn_carry[li_i] + ls_zero + ls_rc
ls_zero = ''
lb_zero_yuan = False
End If Next ls_rc = ls_zf + ls_rc + ls_z Return ls_rc //返回结果 100100.11 100100100.11 10010100100.11
PowerBuilder -- 数字金额大写的更多相关文章
- JS数字金额大写转换
/** 数字金额大写转换(可以处理整数,小数,负数) */ var digitUppercase = function(n) { var fraction = ['角', '分']; var digi ...
- Java版 数字金额大写转换
需求:读入一个浮点数值,将其转化为中文金额的大写形式.如123.45,转化为:壹佰贰拾叁元肆角伍分. 以下是各种情况要完善: 1. 当金额为整数,只表示整数部分,省略小数部分,并添加“整”字.如123 ...
- js限制input只能输入有效的数字,有且只有一个小数点,第一个不能为小数点-备
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JS数字金额转换为货币汉字形式
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- BPM实例分享——金额规则大写
金额规则大写 在涉及金额的流程中经常会遇到需要大写金额数据与小写金额匹配,如何实现输入数字后自动转换呢? 初级用法: 1.在默认表单基本属性javascript 中增加如下金额转换方法 /** 数字金 ...
- NumberUtils
package cn.edu.hbcf.common.utils; import java.math.BigDecimal; import java.text.NumberFormat; import ...
- JS将人民币小写金额转换为大写
/** 数字金额大写转换(可以处理整数,小数,负数) */ function smalltoBIG(n) { var fraction = ['角', '分']; var digit = ['零', ...
- JS进行人民币大小写转换
//数字金额大写转换(可以处理整数,小数,负数) function upDigit() { digit=$("#digit").html(); n=digit.replace(/\ ...
- H3BPM实例分享——金额规则大写
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
随机推荐
- [Oracle] 某游戏大区DB IO负载过高分析
某游戏大区DB IO负载过高分析 [问题] 下图信息看出机器IO负载过高, IO使用率: 平均值 50%, 峰值 98%, 业务高峰时间段(19:00-22:00)IO使用率持续80%以上. [分析] ...
- A Wasserstein Distance[贪心/模拟]
链接:https://www.nowcoder.com/acm/contest/91/A来源:牛客网 最近对抗生成网络(GAN)很火,其中有一种变体WGAN,引入了一种新的距离来提高生成图片的质量.这 ...
- 2017广东工业大学程序设计竞赛决赛 F(LCA + 斐波那契数列性质)
不能组成三角形的极端数列:1,1,2,3,5,8,13,21,……到第50项时候肯定到1e9了…… 如果两个点之间距离大于50,则直接Yes…… 否则的话直接暴力取出所有边,然后升序排序,判断一下就可 ...
- koa2 从入门到进阶之路 (三)
之前的文章我们介绍了一下 koa 路由,get 传值,动态路由,本节我们看一下 koa 中间件 以及 koa 中间件的洋葱图执行流程. 一.什么是 Koa 的中间件 通俗的讲:中间件就是匹配路由之前或 ...
- Scala之Future超时
最近在开发中使用akka http进行请求,返回的是一个future,并且要对future进行超时设置,不知怎么设置,因此学习了下. 一.Future阻塞 首先,scala中的future不支持内置超 ...
- CMake的应用(在vision studio2008中去掉 ALL_BUILD 和 ZERO_CHECK)
from http://blog.csdn.net/jtop0/article/details/6167432 一般由CMake是 跨平台软件开发和维护过程的 工程构建工具.“在每个系统构建你的工程 ...
- 获取元素位置信息和所占空间大小(via:js&jquery)
工作中有一个很常见的需求,hover或者click某元素后,在该元素旁边出现弹框,主要就是获取该元素的位置坐标以及元素所占区块的大小.最近工作中就遇到了,发现js和jquery的实现方法有很大的区别, ...
- [ios]objective-c 协议和委托 (重点基础知识)
objective-c protocol delegateprotocol-协议,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现. delegate-委托,顾名思义就是委托 ...
- POJ 2128:Highways
Highways Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 2730 Accepted: 1008 Specia ...
- appium查找元素心得
在使用appium测试app的时候并没有selenium那么好用,为什么呢? 个人觉得是因为定位方式太少,selenium中的xpath已经强大到基本可以找到任何一个元素. 但是在appium中xpa ...