人民币大小写转换有点问题:
在好多情况下,小写数字显示的金额,并不一定与实际金额相等.
如果你在表单中,将某字段小数位数设成不是两位,转换后就不正确.特别是"分"的确定.
如:123.5612,123.561,123.56,这三个金额数转换后,按楼主的公式,就有三个答案:
123.5612:壹佰贰拾叁元伍角贰分
123.561: 壹佰贰拾叁元伍角壹分
12.56: 壹佰贰拾叁元伍角陆分
其实,我们需要的是第三种答案.
本人觉得,将公式后面的稍加改动,完全可以避免.
原公式: IF(($MF(小写金额)$-INT($MF(小写金额)$))=0,MFCNUM($MF(小写金额)$)&"元整",IF(INT($MF(小写金额)$*10)-$MF(小写金额)$*10=0,MFCNUM(INT($MF(小写金额)$))&"元"&MFCNUM((INT($MF(小写金额)$*10)-INT($MF(小写金额)$)*10))&"角整",MFCNUM(INT($MF(小写金额)$))&"元"&IF(INT($MF(小写金额)$*10)-INT($MF(小写金额)$)*10=0,"零",MFCNUM(INT($MF(小写金额)$*10)-INT($MF(小写金额)$)*10)&"角")&MFCNUM(RIGHT($MF(小写金额)$,1))&"分"))
改动后:IF(($MF(小写金额)$-INT($MF(小写金额)$))=0,MFCNUM($MF(小写金额)$)&"元整",IF(INT($MF(小写金额)$*10)-$MF(小写金额)$*10=0,MFCNUM(INT($MF(小写金额)$))&"元"&MFCNUM((INT($MF(小写金额)$*10)-INT($MF(小写金额)$)*10))&"角整",MFCNUM(INT($MF(小写金额)$))&"元"&IF(INT($MF(小写金额)$*10)-INT($MF(小写金额)$)*10=0,"零",MFCNUM(INT($MF(小写金额)$*10)-INT($MF(小写金额)$)*10)&"角")&MFCNUM(RIGHT(INT($MF(小写金额)$*100),1))&"分"))
本人的一点小看法,不知正确与否. |