请设计一个函数,不许用到字符串函数,用数学运算,将double类型数据转换,例如123.456转换成654.321
int _tmain(int argc, _TCHAR* argv[])
{
const double number = 123.456;
double ten = 1;
double ten2 = 10;
double resultValue = 0.0;
for(int i=0;i<3;++i)
{
double temp = number;
double a = (int(temp/ten)%10)/ten2;
resultValue += a; double b = (int(temp*ten2)%10)*ten;
resultValue += b;
ten *=10;
ten2 *=10;
} cout<<resultValue<<endl;
return 0;
}
调试的过程中发现有些浮点数表示不了,如果满足题意(不许用到字符串函数,用数学运算,将double类型数据转换)实际上这个算法是存在问题的。关于浮点数又收集了另外几篇博文,后面整理。