标题:[求助]哪位好心人,能帮我看看吗?
只看楼主
牧云高手
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-12-6
 问题点数:0 回复次数:6 
[求助]哪位好心人,能帮我看看吗?

各位高手,我这有个程序,今天运行的时候遇到了一个难题。请帮我防改改吧!

这是一个人民币大小写程序,可是当我输入10020030040.02的时候,电脑就乱读了。

这是什么原因啊?

程序如下:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;

string ConvertMoneyCaps(long double moneySum)
{
long int temp_i = (long int)moneySum; /**//* 整数部分 */
float temp_f = moneySum - temp_i; /**//* 小数部分 */
int digit = 0, i, j, k, num_i;
string money("");
char num[20], *p;
char name[][3] = {"元","拾","佰","仟","万","亿"};
char numchar[][3] = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
ltoa(temp_i, num, 10); /**//* 整数部分转换成字符串后在处理 */
p = num;
digit = strlen(num); /**//* 整数部分位数 */
/**//*--------处理整数部分 start--------*/
for(i = 1; i <= digit; i ++)
{
k = (digit - i) % 4;
if(isdigit(*p))
{
num_i = *p & 0xF; /**//* 把字符转换成数字,比如 '0'-> 0,'1' -> 1*/
/**//*--------转换数字开始---------*/
if(num_i)
{
money = money+ numchar[num_i];
}
else
{
if(k && (*(p + 1) &0xF))
money += "零";
}
/**//*--------转换数字结束-------*/
/**//*---------添加计数单位开始----*/
if(k)
{
if(num_i)
money = money + name[k];
}
else
{
j = digit - i;
if(j)
money = money + name[j/4 + 3];
else
money += "元";
}
/**//*--------添加计数单位结束--------*/
p++;
}
else
{
money = "遇到非数字退出!";
return money;
}
}
/**//*--------处理整数部分 End --------*/
/**//*--------处理小数部分 start--------*/
if(temp_f > 0.01)
{
if((int)(temp_f*10)) money = money + numchar[(int)(temp_f*10)] + "角";
if((int)(temp_f*100)%10) money = money + numchar[(int)(temp_f*100)%10] + "分";
}
/**//*--------处理小数部分 End--------*/
money += "整";

return money;
}
int main()
{
long double x = 33.20;
cout << "please input the money:";
cin >> x;
cout << "Convert Money Caps:";
string money = ConvertMoneyCaps(x);
cout << money <<endl;
return 0;
}


运行时,可能会有问题。但可以用台湾的那个V++。

谢了。

[此贴子已经被作者于2005-12-13 21:47:19编辑过]

搜索更多相关主题的帖子: include 人民币 double 
2005-12-13 18:46
盖茨他爹
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:5255
专家分:0
注 册:2005-5-3
得分:0 

高手是不需要验证滴,想让高手帮你是不需要拐弯抹角滴。

2005-12-13 18:48
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
得分:0 
落伍了,我还在用tc 2.0


学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2005-12-13 19:02
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
他爹,你的头像怎么那么像Live41他本人?

淘宝杜琨
2005-12-13 19:15
盖茨他爹
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:5255
专家分:0
注 册:2005-5-3
得分:0 
比他本人帅那么一点点
2005-12-13 19:18
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
得分:0 
他爹,你的头像怎么那么像Live41他本人?

孩子他嘛在哪里啊??

[此贴子已经被作者于2005-12-13 20:02:12编辑过]


学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2005-12-13 20:01
牧云高手
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-12-6
得分:0 
惭愧!!!
一楼的那位能帮怎么不帮呢?
你不是也只说说吧。

我承认自己的C语言很差。但我会好好学的。
2005-12-13 21:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-38001-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.279029 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved