谁解怨妇心 发表于 2013-2-5 02:12:58

double类型转换为汉字算法

例如: 192.37得到: 壹佰玖拾贰元叁角柒分

    刚刚在CSDN上面看到的,觉得还挺有意思的就做来看看。做完后对比一下别人那些C#跟java的代码写了一大段……汗,果然还是C/C++的数组操作方便。
#include<iostream>#include<string>using namespace std;const wchar_t num[]=L"零壹贰叁肆伍陆柒捌玖";const wchar_t wei[]=L"万仟佰拾亿仟佰拾万仟佰拾元角分";void change(double price){wchar_t result={0};int i=255,j=14,m;bool iszero=false;m=price*100;while(m){if(iszero){if((j%4)==0)result=wei;elsej--;if((m/10)%10)iszero=false;}else{if(m%10){result=wei;result=num;iszero=false;}else{if((j%4)==0)result=wei;else{j--;if(j<12)result=num;}if(!(m/10)%10)iszero=true;}}m=m/10;}wcout<<(result+i+1)<<endl; }int main(){ wcout.imbue( locale("chs") );change(101101.01);return 0;}
    代码风格写得太难看了,不过C++的static_cast实在太长了,还是用C风格的强制转换算了。用char字符的话会乱码……只好用unicode字符了……
页: [1]
查看完整版本: double类型转换为汉字算法