小数怎么转化分数?

Posted

tags:

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

参考技术A

小数转化成分数,要分几种情况:

一、有限小数

1、看是几位小数,就在1后面添几个0做分母

2、把原来的小数去掉小数点作分子

3、约分

二、无限纯循环小数

1、看循环节有几位,就写几个9做分母

2、循环节做分子

3、约分

三、无限混循环小数

1、看循环节有几位,就写几个9

2、看非循环部分有几位,就写几个0在9后面做分母

3、非循环部分和第一个循环节相连做分子

四、无理数

无理数本来就不能化成分数才叫无理数的,所以不能化分数。

扩展资料

小数,是实数的一种特殊的表现形式。所有分数都可以表示成小数,小数中的圆点叫做小数点,它是一个小数的整数部分和小数部分的分界号。其中整数部分是零的小数叫做纯小数,整数部分不是零的小数叫做带小数。

分数表示一个数是另一个数的几分之几,或一个事件与所有事件的比例。把单位“1”平均分成若干份,表示这样的一份或几份的数叫分数。分子在上,分母在下。

参考资料:百度百科-小数   百度百科-分数

小数转化分数

https://blog.csdn.net/qq1013459920/article/details/81124577学习链接

例子:123.456  2(2表示小数第几个数后是循环开始)
//#include <iostream>
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()

char ch;
string s;
ll fm=1,fz=0,tt;
int k;
cin>>tt>>ch>>s>>k;
int len=s.size();
cout<<tt<<endl;
cout<<ch<<endl;
cout<<s<<endl;
cout<<k<<endl;
for(int i=len-k; i<len; i++)

fz=fz*10+s[i]-‘0‘;

for(int i=0; i<k; i++)
fm*=10;
fm--;
ll tf=1;
for(int i=0; i<len-k; i++)

fm*=10;
tf*=10;
tt=tt*10+s[i]-‘0‘;

ll ffm=tf*fm;
ll ffz=tt*fm+fz*tf;
ll ans=__gcd(ffz,ffm);
ffz/=ans;
ffm/=ans;
cout<<ffz<<"/"<<ffm<<endl;
return 0;

 

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

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

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

SQL中将数据字段变为百分数

R语言分数字符串变小数

matlab如何把小数转换成分数

sql 中相除后怎么得个百分数