| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 280 人关注过本帖
标题:关于强制转换的精度问题
只看楼主 加入收藏
菜鸟想逆袭
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-10-20
结帖率:0
收藏
已结贴  问题点数:10 回复次数:1 
关于强制转换的精度问题
//一个付款找钱的程序


#include "stdio.h"
int PayMoney(float input);
#define FACENUM 9
void main()
{
    //define a para to get currency value
    float input;
    //get input
    scanf("%f",&input);
   
      //print result
    printf("Totally %d paper notes.\n",PayMoney(input));
   
}

//define the function here
int PayMoney(float input)
{
    int a,b,c,d,e,f;
    int x;
    int g,h,i;
    float o;   
    int num;
   

    x=input/1;
    o=input-x;
    g=(int)(o/0.1000000);
    h=(int)((o-g*0.100000)/0.0500000);
    i=(int)((o-g*0.10000-h*0.050000)/0.0100000);
   
    a=(int)(x/100);
    b=(int)((x-a*100)/50);
    c=(int)((x-50*b-a*100)/10);
    d=(int)((x-a*100-b*50-c*10)/5);
    e=(int)((x-a*100-b*50-c*10-d*5)/2);
    f=(int)((x-a*100-b*50-c*10-d*5-2*e));
    printf("100块:%d 50块:%d 10块:%d 5块:%d 2块:%d 1块:%d 1毛:%d 5分:%d 1分:%d\n",a,b,c,d,e,f,g,h,i);
    num=a+b+c+d+e+f+g+h+i;
    return num;
}
// 如果输入111.13,找回的钱就会是2分。老师说是精度问题,请问强制转换问题应该注意什么?
应该怎么修改?
搜索更多相关主题的帖子: function currency include 
2012-11-27 16:59
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:10 
注意数据类型,符号
2012-11-27 18:39
快速回复:关于强制转换的精度问题
数据加载中...
 
   



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

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