Excel中int函数计算后为什么值变小了?

要把G16单元格中的数值“38195.86”变成大写金额形式,用的公式
=IF(G16-INT(G16)=0,TEXT(G16,"[dbnum2]")&"元整",IF(G16*10-INT(G16*10)=0,TEXT(INT(G16),"[dbnum2]")&"元"&TEXT(INT((G16-INT(G16))*10),"[dbnum2]")&"角整",TEXT(INT(G16),"[dbnum2]")&"元"&TEXT(INT((G16-INT(G16))*10),"[dbnum2]")&"角"&TEXT(INT((G16*10-INT(G16*10))*10),"[dbnum2]")&"分"))
发现输出的是“叁万捌仟壹佰玖拾伍元捌角伍分”,分位计算是错误的,正确的应该是“叁万捌仟壹佰玖拾伍元捌角陆分”。
错误的地方是公式INT((G16*10-INT(G16*10))*10)计算结果是5而不是6,为什么会这样,求大神答疑!
修改成了
=IF(G16-INT(G16)=0,TEXT(G16,"[dbnum2]")&"元整",IF(G16*10-INT(G16*10)=0,TEXT(INT(G16),"[dbnum2]")&"元"&TEXT(INT(G16*10-INT(G16)*10),"[dbnum2]")&"角整",TEXT(INT(G16),"[dbnum2]")&"元"&TEXT(INT(G16*10-INT(G16)*10),"[dbnum2]")&"角"&TEXT(INT(G16*100-INT(G16*10)*10),"[dbnum2]")&"分"))
之后,在用38195.88验证时发现还是错的,输出的是“叁万捌仟壹佰玖拾伍元捌角柒分”……求解为什么!

第1个回答  2018-08-01
公式改为:
=IF(OR(G16="",G16=0),"",TEXT(TRUNC(G16),"[dbnum2]G/通用格式圆;负[dbnum2]G/通用格式圆;;")&TEXT(RIGHT(TRUNC(G16*10)),"[dbnum2]#角;;;")&TEXT(RIGHT(TRUNC(G16*100)),"[dbnum2]#分;;整;"))
第2个回答  2018-08-01
试下这公式=IF(g16,TEXT(INT(g16),"[dbnum2]")&IF(INT(g16)=g16,"元整","元")&TEXT(--RIGHT(INT(g16*10)),IF(--RIGHT(g16*100),"[=0]零;[dbnum2]#角","[dbnum2]#角整;;"))&TEXT(--RIGHT(g16*100),"[dbnum2]#分;;"),"")本回答被网友采纳
相似回答