數字轉換人民幣大寫形式:
銀行、單位和個人填寫的各種票據和結算憑證需要將數字金額寫**民幣大寫形式,它的規則主要有以下幾條:
1、數字和單位使用壹、貳、叄、肆、伍、陸、柒、捌、玖、拾、佰、仟、萬、億、元、角、分、零、整等字樣,不能使用其他漢字;
2、中文大寫金額數字到"元"為止的,在"元"之後、應寫"整"字;在"角"之後,可以不寫"整"字;大寫金額數字有"分"的,"分"後面不寫"整"字;
3、數字中間有0的,要用漢字零,當數字中間有多個0時,人民幣大寫形式按口語習慣只保留乙個零,如數字30001對應轉換結果為「叄萬零壹元整」
輸入
輸入乙個數字(長度不超過10位,可能包含2位小數)。
輸出
對應人民幣大寫形式。
#include #include #include int main() ;
double digital;
int tmp;
bool flag, flag2;
while(eof != scanf("%lf", &digital))
printf("%s億", arr[tmp%10]);
flag = true;
} tmp = (int)digital % 100000000;
if(tmp >= 10000) else
}if(tmp >= 100)
printf("%s佰", arr[tmp/100]);
tmp %= 100;
flag = true;
} else
}if(tmp >= 10)
printf("%s拾", arr[tmp/10]);
tmp %= 10;
flag = true;
} else
}if(tmp > 0)
printf("%s", arr[tmp]);
} printf("萬");
flag = true;
} tmp = (int)digital % 10000;
if(tmp >= 1000) else
} if(tmp >= 100)
printf("%s佰", arr[tmp/100]);
tmp %= 100;
flag = true;
} else
} if(tmp >= 10)
if(!flag && (tmp/10 == 1))
printf("拾");
else
printf("%s拾", arr[tmp/10]);
tmp %= 10;
flag = true;
} else
} if(tmp > 0)
printf("%s", arr[tmp]);
flag = true;
} if(flag)
printf("元");
double inta = 100 * digital;
//printf("%lf, %d ", inta, (int)digital*100);
tmp = inta - (int)digital * 100;
//printf("%lf, %d ", inta, tmp);
//printf("%lf ", fabs(inta - (int)digital * 100 - tmp));
if(fabs(inta - (int)digital * 100 - tmp)>0.01)
if(tmp >= 1) else
if(tmp % 10 > 0)
printf("%s分\n", arr[tmp%10]);
else
printf("\n");
} else
} return 0;
}
環境ubuntu下必須用fabs
很煩人的一題,之前的結果由於浮點數的原因,結果總是差0.01
數字人民幣
現階段,m1和m2基於商業銀行賬戶,已實現電子化或數位化,沒有用數字貨幣再次數位化的必要。相比之下,現有紙鈔和硬幣的發行 印製 回籠和貯藏等環節成本較高,流通體系層級多,且攜帶不便 易被偽造 匿名不可控,存在被用於洗錢等違法犯罪活動的風險,實現數位化的必要性與日俱增。央行數字貨幣保持了現鈔的屬性和主...
python 數字轉人民幣讀法
把乙個浮點數分解成整數和小數部分字串 num是需要被分解的浮點數 返回分解出來的整數和小數部分 第乙個陣列元素是整數部分,第二個數字元素是小數部分 def divide num 將乙個浮點數強制轉換成int型別,即得到他的整數部分 integer int num 浮點數減去整數部分,得到小數部分,小...
人民幣轉大寫
function changermb const strrmb string string vartxt,strhighlevel string i,n,m,ilen,ipos integer n記錄整數部分長度,m記錄分數部分長度 strarray,strlevel array of string...