double减法。。小数部分

「已注销」 2011-07-02 03:43:47

#include<stdio.h>
char str1[][3]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
char str2[][3]={"亿","仟","佰","拾","万","仟","佰","拾","元","角","分"};
void main()
{
double r,y;
char str3[20];
int i,n,j,m,x,k,pd=0;
printf("请输入金额:");
scanf("%lf",&r);
y=r-(r/1);
x=r/1;
for(i=0;i<=11;i++)
{
m=x%10;
str3[11-i]=m;
x=x/10;
}
str3[12]=(int)(y*10);
str3[13]=(int)(y*100)%10;
for(k=0;k<=13 && pd==0;k++)
{
if(str3[k]>0)
{
pd=1;n=k;
}
}
for(j=n;j<=13;j++)
printf("%s%s",str1[str3[j]],str2[j-3]);
putchar(10);
}


小数部分有问题,还有DOUBLE 近似的问题。谢谢了。
...全文
145 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
JiangXiang 2011-07-03
  • 打赏
  • 举报
回复
y=r-(int)r;
sduxiaoxiang 2011-07-03
  • 打赏
  • 举报
回复
-[Quote=引用 17 楼 coldicy2007 的回复:]
引用 8 楼 sduxiaoxiang 的回复:
C/C++ code

y=r-((int)r/1);


y是小数部分

求教,为什么要除以1?
[/Quote]
源代码上改的
除不除无所谓
coldicy2007 2011-07-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sduxiaoxiang 的回复:]
C/C++ code

y=r-((int)r/1);


y是小数部分
[/Quote]
求教,为什么要除以1?
lengwuqin 2011-07-02
  • 打赏
  • 举报
回复
帮你写好了,改了你的程序,分之后的就输不出来了,这个没帮你写,代码如下:

#include<stdio.h>
char str1[][3]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
char str2[][3]={"亿","仟","佰","拾","万","仟","佰","拾","元","角","分"};
void main()
{
double r,y;
char str3[20];
int i,n,j,m,x,k,pd=0;
printf("请输入金额:");
scanf("%lf",&r);
y=r-(int)(r/1);
x=r/1;
for(i=0;i<=11;i++)
{
m=x%10;
str3[11-i]=m;
x=x/10;
}

j=(int)(y*10);
i=0;
while( j!=0 )
{
str3[12+i]=j;
y=y*10-j;
j=(int)(y*10);
i++;
printf("j=%d\n",j);
}
for(k=0;k<=13 && pd==0;k++)
{
if(str3[k]>0)
{
pd=1;n=k;
}
}
for(j=n;j<=13;j++)
printf("%s%s",str1[str3[j]],str2[j-3]);
putchar(10);
}
WayneXuan 2011-07-02
  • 打赏
  • 举报
回复
y=r-(r/1);改成y=r-(int)r;
「已注销」 2011-07-02
  • 打赏
  • 举报
回复
呵呵 刷分啊
philip_puma 2011-07-02
  • 打赏
  • 举报
回复
好好学习,天天向上、
sduxiaoxiang 2011-07-02
  • 打赏
  • 举报
回复

y=r-((int)r/1);

y是小数部分
「已注销」 2011-07-02
  • 打赏
  • 举报
回复
帮帮忙了 谢谢了。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧