vc++中 怎样直接分开整数和小数两部分(一个实型3位小数:例12111.010) 并输出

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:45:40

float a
int b=(int)a
float c=a-b

#include<iostream>
using namespace std;
int main()
{
float a=12111.010,b;
int c;
c=(int)a;
b=a-c;
cout<<c<<" "<<b<<endl;
return 0;
}

这里有一个问题,输出的不是0.01.而是0.009几。这不是程序的问题,而是计算机中关于小数存储的问题。用二进制位存储小数时,不是每个小数都能被精确表示的。就是这个问题了

先将float 转换成 字符型 根据 . 字符查找
char buf[10];
int a =1110.001;
_itoa(a,buf,10);
cstring str;
str = buf;
int b = str.find(".");
cstring str1 = str.left(b);
str1 小数点以前的。
str.Replace(str1,"");
str 小数点以后的。