【发布时间】:2015-01-20 02:14:42
【问题描述】:
我正在使用 Crystal Report 中的 ToWords 函数将数字转换为单词。金额有时也可能包含小数,因此我包含了一个 IF 条件来评估它,仅在必要时才包含小数部分。
但是我还需要添加一个“和”词来分隔单词中的数量,以便于阅读。
例如。 38426 应显示为“三万八千二百四十六”。目前显示为“三万八千二百四十六”。
这是我目前的代码。
NUMBERVAR amount := 38246;
NUMBERVAR decimals := (Round(amount,2) - Int(amount)) * 100;
STRINGVAR words := 'Rupees';
words := words & ' ' & TOWORDS(amount,0);
IF(decimals > 0) THEN words := words & ' and ' &TOWORDS(decimals,0) & ' cents';
words := PROPERCASE(words & ' only');
【问题讨论】:
-
您要在
tens之前添加and吗? -
不,它应该适用于像 130000 这样的数字,它只能读取 113000。如果无论数量多少,它都可以用于任何数量,那就太好了。这可能吗??
-
对于任何单位(数百、数千、数百万等),您不能只检查该单位的百位和十位是否非零并在它们之间添加“和”如果是这样?。因此,在您的示例中,千位的百 (1) 位和十位 (30) 非零,因此您将添加一个“和”:130 万
-
This posting 建议只需要在数值中包含十进制值的情况下添加“and”即可。因此,1100 美元是“一千,一百美元”,而 100.10 美元是“一百美元和十美分”。如果它不是货币,我倾向于使用连字符并使用逗号:'55,123.35 = '五万五千,一百,二十三 POINT 三五。
标签: crystal-reports crystal-reports-2008 crystal-reports-xi crystal-reports-2010