浮点数与整数的减法
查看原帖
浮点数与整数的减法
371347
HarryZhang楼主2020/8/12 22:08
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    float a,yx,xx,b;
    int yz,xz,h,t,o;
    cin>>a;
    yz=floor(a);
    yx=a-yz;
    xz=yx*10;
    h=yz/100;
    t=(yz%100)/10;
    o=yz%10;
    xx=(h/1000.0)+(t/100.0)+(o/10.0);
    b=xz+xx;
    cout<<a<<" "<<yz<<" "<<yx<<" "<<b;
    return 0;
}

本题使用以上算法时,部分情况答案正确。但当输入的a值为888.8时,输出的a,yz(原整数部分),yx(原小数部分),b(答案)却依次为888.8,888,0.799988,7.888。据此推测是“yx=a-yz”这一行出了问题。请问这是由于a(float)与yz(int)的数据类型不同吗?有解决方法吗?

2020/8/12 22:08
加载中...