顺序表示的串——顺序串3——将浮点类型转换为对应的字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_36669549/article/details/84727220

将函数void ftoa(double f, char[])中的浮点数f转换为相应的字符串,存放在s中。其中,最多保留4位小数。例如1234.67转换为“1234.67”,-56.789867转换为“-56.7898”

【分析】
该题是北京航空航天大学的考研题。在将浮点数转换为相应的字符时可分为两个部分进行转换:先将浮点数的整数部分转换为字符串,然后将浮点数的小数部分转换为字符串。转换时需要取出浮点数中的每一位数字,然后加上48就转换为字符了。

main.cpp

#include <iostream>
using namespace std;
#define MAX 100
void ftoa(float f,char s[]);
void main()
{
	double f;
	char s[MAX];
	cout << "请输入一个浮点数:" << endl;
	cin >> f;
	ftoa(f, s);
	cout << "转换后的字符串为:" <<s << endl;

	system("pause");
}
void ftoa(float f, char s[])
{
	int i, j, len, t, n;
	double sign;
	if ((sign=f)<0)
	{
		f = -f;
	}
	n = int(f);
	i = 0;
	do 
	{
		s[i++] = n % 10 + 48;
	} while (n/=10);
	if (sign<0)
	{
		s[i++] = '-';
	}
	len = i;
	for (i = 0,j = len - 1; i < len / 2;i++,j--)
	{
		t = s[i];
		s[i] = s[j];
		s[j] = t;
	}

	f -= (int)f;
	s[len++] = '.';
	for (i = 0; i < 4;i++)
	{
		f *= 10;
		s[len++] = ((int)f) % 10 + 48;
	}

	while (s[len-1]=='0')
	{
		len--;
		
	}
	s[len] = '\0';
}

结果:

猜你喜欢

转载自blog.csdn.net/baidu_36669549/article/details/84727220