手机版

百科生活 投稿

把小数化成分数怎么化,小数怎么化为分数(分数化为小数<包含有限小数)

百科 2025-12-26 21:16:15 投稿 阅读:6955次

关于【把小数化成分数怎么化】,小数怎么化为分数,今天小编给您分享一下,如果对您有所帮助别忘了关注本站哦。

  • 内容导航:
  • 1、把小数化成分数怎么化:小数怎么化为分数?分数怎么化为小数
  • 2、分数化为小数(包含有限小数,纯、混无限循环小数)

1、把小数化成分数怎么化:小数怎么化为分数?分数怎么化为小数

小数化分数

有限小数化分数
根据小数部分的计数单位分别是:十分之一,百分之一,千分之一,…。对应0.1,0.01,0.001…。

循环小数化分数
① 纯循环小数化分数:

② 混循环小数化分数:

分数化小数

一般方法: 分子除以分母。除不尽时按要求保留几位小数。分子就是被除数,分母就是除数,然后相除就可以了。

特殊方法:
(1)分母是10,100,...时,直接写成小数。

(2)分母是10,100,...的因数时,可以化成分母是10,100,...的分数再写成小数。

2、分数化为小数(包含有限小数,纯、混无限循环小数)

一、对大于1的自然数n,将其倒数1/n化成小数有三种类型:

  1. n的因数中只含有2或5,其结果必然是有限小数,且小数位数等于其因数2或5中最多的个数,例如:1/40=0.025,有3位小数,而40=2^3*5,其中含有3个因数2;
  2. 如果n中不含因数2或5,把它化成小数将是一个纯无限循环小数,这种情况前面已经介绍过;
  3. n中既有因数2或5又有其它因数,把它化成小数将是一个混无限循环小数:其中不循环部分的位数,等于其因数2或5中最多的个数;循环节的位数只由2或5以外的因数决定,例如:1/56=0.017’857142’,其中不循环部分有3位小数,循环节是6位,而56=2^3*7,其中含有3个因数2和一个因数7,我们已经知道7的倒数的循环节位数也是6位。

二、用C语言编程把单位分数化为小数:

//分数化小数(包含:有限小数 纯无限循环小数 混无限循环小数)

#include

int main ()

{ int i,b,y,y1,w;//循环变量i,被除数b,余数y,循环节位数w,

int m,n; //范围[m,n],(其中m,n均为自然数,且2<=m<=n)

printf("请输入自然数范围m n(用空格隔开):"); scanf("%d %d",&m,&n);

if(m<=1) m=2; //排除0和1的倒数

for(i=m;i<=n;i++)

{ y=i;w=0; //i给余数y;含因数2或5的最多个数w置0

while(y%10==0){ y/=10; w++; } //y能被几个10整除

while(y%2==0) { y/=2; w++; } //y能被几个2整除

while(y%5==0) { y/=5; w++; } //y能被几个5整除

printf("1/%d=0.",i);

y=1; //余数(被除数)置1

while(w!=0) //当含2或5的个数不是0时反复除:

{ y*=10; //余数后补0

printf("%d",y/i); //输出一位商(不循环部分)

y%=i; w--; //求新余数,个数减1

}

if(y==0) {printf("\n");continue;} //若是有限小数,看下一个i

printf("'"); //'为循环部分开始标记,用单引号' '里面表示一个循环节

b=y*10; y1=y; //先把余数*10传给b(保证下面的循环能进行);把循环开始前的余数传给y1

while(b!=y1) //当余数=循环开始时的余数时跳出

{ y*=10;w++; //余数*10变为被除数,累计循环部分位数

printf("%d",y/i); //输出一位商(循环部分)

y%=i; b=y; //求新余数,余数y传给除数b

}

printf("',其循环节有%d位\n",w); //'为循环部分结束标记,输出循环节位数w

}

}

三、单位分数化小数运行结果展示:

本文关键词:小数怎么化为分数,小数变分数的方法,小数化分数怎么化,如何将循环小数转化为分数,小数怎么换算成分数。这就是关于《把小数化成分数怎么化,小数怎么化为分数(分数化为小数<包含有限小数)》的所有内容,希望对您能有所帮助!

本文链接:https://bk.89qw.com/a-702057

最近发表
网站分类