[QString] 新增简繁体转换和货币金额中文大写支持函数

不多说,直接上函数声明:

/// <summary>简体中文转换为繁体中文</summary>
/// <param name="S">要转换的字符串</param>
/// <returns>返回转换后的结果</returns>
function SimpleChineseToTraditional(S: QStringW): QStringW;
/// <summary>繁体中文转换为简体中文</summary>
/// <param name="S">要转换的字符串</param>
/// <returns>返回转换后的结果</returns>
function TraditionalChineseToSimple(S: QStringW): QStringW;
/// <summary> 将货币值转换为汉字大写</summary>
/// <param name="AVal">货币值</param>
/// <param name="AFlags">标志位组合,以决定输出结果的格式</param>
/// <param name="ANegText">当货币值为负数时,显示的前缀</param>
/// <param name="AStartText">前导字符串,如“人民币:”</param>
/// <param name="AEndText">后置字符串,如“整”</param>
/// <param name="AGroupNum">组数,每个数字与其单位构成一个数组,AGroupNum指出要求的组数量,不为0时,会忽略标志位中的MC_HIDE_ZERO和MC_MERGE_ZERO</param>
/// <param name="ARoundMethod">金额舍入到分时的算法</param>
/// <param name="AEndDigts">小数点后的位数,-16~4 之间</param>
/// <returns>返回格式化后的字符串</returns>
function CapMoney(AVal: Currency; AFlags: Integer;
  ANegText, AStartText, AEndText: QStringW; AGroupNum: Integer;
  ARoundMethod: TMoneyRoundMethod; AEndDigits: Integer = 2): QStringW;

货币大写转换的函数效果测试的示例如下:

格式化值:1.235
    阅读格式(四舍五入):¥壹圆贰角肆分
    套打格式(四舍五入):¥壹贰肆
    阅读格式(银行家):¥壹圆贰角肆分
    套打格式(银行家):¥壹贰肆
格式化值:1.245
    阅读格式(四舍五入):¥壹圆贰角伍分
    套打格式(四舍五入):¥壹贰伍
    阅读格式(银行家):¥壹圆贰角肆分
    套打格式(银行家):¥壹贰肆
格式化值:1.234
    阅读格式(四舍五入):¥壹圆贰角叁分
    套打格式(四舍五入):¥壹贰叁
    阅读格式(银行家):¥壹圆贰角叁分
    套打格式(银行家):¥壹贰叁
格式化值:1.236
    阅读格式(四舍五入):¥壹圆贰角肆分
    套打格式(四舍五入):¥壹贰肆
    阅读格式(银行家):¥壹圆贰角肆分
    套打格式(银行家):¥壹贰肆
格式化值:100.24
    阅读格式(四舍五入):¥壹佰零贰角肆分
    套打格式(四舍五入):¥壹零零贰肆
    阅读格式(银行家):¥壹佰零贰角肆分
    套打格式(银行家):¥壹零零贰肆
格式化值:10012.235
    阅读格式(四舍五入):¥壹万零壹拾贰圆贰角肆分
    套打格式(四舍五入):¥壹零零壹贰贰肆
    阅读格式(银行家):¥壹万零壹拾贰圆贰角肆分
    套打格式(银行家):¥壹零零壹贰贰肆
格式化值:-922337203685477.5807
    阅读格式(四舍五入):¥-玖拾贰兆贰万叁仟叁佰柒拾贰亿零叁佰陆拾捌万伍仟肆佰柒拾柒圆伍角捌分
    套打格式(四舍五入):¥-玖贰贰叁叁柒贰零叁陆捌伍肆柒柒伍捌
    阅读格式(银行家):¥-玖拾贰兆贰万叁仟叁佰柒拾贰亿零叁佰陆拾捌万伍仟肆佰柒拾柒圆伍角捌分
    套打格式(银行家):¥-玖贰贰叁叁柒贰零叁陆捌伍肆柒柒伍捌
格式化值:922337203685477.5807
    阅读格式(四舍五入):¥玖拾贰兆贰万叁仟叁佰柒拾贰亿零叁佰陆拾捌万伍仟肆佰柒拾柒圆伍角捌分
    套打格式(四舍五入):¥玖贰贰叁叁柒贰零叁陆捌伍肆柒柒伍捌
    阅读格式(银行家):¥玖拾贰兆贰万叁仟叁佰柒拾贰亿零叁佰陆拾捌万伍仟肆佰柒拾柒圆伍角捌分
    套打格式(银行家):¥玖贰贰叁叁柒贰零叁陆捌伍肆柒柒伍捌

capmoney

这个示例程序位于 Demos\Delphi\VCL\CapMoney 目录下。

分享到: