小数转化为分数

Posted robin5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小数转化为分数相关的知识,希望对你有一定的参考价值。

输入一个小于1的正小数,分别输出最简分数的分子和分母。

此代码的目的是简单快速的求出有限位小数对应的最简真分数。

C语言代码如下:

# include <stdio.h>
# include <string.h>

// 判断两个整数的最大公约数是否为1
int is_prime(int a, int b)
{
	while (a != b)
	{
		a>b?(a-=b):(b-=a);
	}
	return b;
}

int main(void)
{
	char ch[50];
	int a=0, b=1;
	int i = 0, flag=0,temp;
	gets(ch);
	// 读取尾数长度
	while (ch[i])
	{		
		if (flag == 1)
		{
			a += (ch[i]-‘0‘);
			a *= 10;
	 		b *= 10;
		}	
		if (flag==0 && ch[i]==‘.‘)
			flag = 1;
		i++;
	 } 
	a /= 10;

	temp = is_prime(a,b);
	
	while (1 != temp)
	{
		a /= temp;
		b /= temp;
		temp = is_prime(a,b);
	}
	printf("%d %d
",a,b);
	
	return 0;
 } 

以上是关于小数转化为分数的主要内容,如果未能解决你的问题,请参考以下文章

C++将小数(double)转化为分数(Rational)

小数怎么转化分数?

小数和百分数相互转化

MATLAB把小数转化为百分数形式输出

java中如何将分数转化成小数?

js小数和百分数的转换