社区
数据结构与算法
帖子详情
把一个小数转成为分数,求算法
pmars
2011-01-26 05:01:48
比如:
0.88 -> 22/25
0.33... -> 1/3
0.22... -> 2/9
0.474612399... -> 1186531/2500000
...全文
1241
12
打赏
收藏
把一个小数转成为分数,求算法
比如: 0.88 -> 22/25 0.33... -> 1/3 0.22... -> 2/9 0.474612399... -> 1186531/2500000
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pmars
2011-01-27
打赏
举报
回复
恩,如此这般,谢谢各位了!!
zhoubing0206
2011-01-27
打赏
举报
回复
[Quote=引用 7 楼 pmars 的回复:]
引用 3 楼 wizard_tiger 的回复:
0.33……是3/(10-1)
0.22……是2/(10-1)
0.2323……是23/(100-1)
关键是如何判断你这个数是个无限循环小数。
在弱弱的问一下:
如果是这样的数据呢?
0.474612399... -> 1186531/2500000
后面的9是循环的。。。
[/Quote]
你怎么输入这个数呢,肯定分 循环小数前 和 循环小数 两部分输入的
两部分分别处理再加一下咯
lzc52151
2011-01-27
打赏
举报
回复
1
1、如果是大于1的小数,把整数、小数部分单拿出来,当把小数部分转成真分数,再加整数部分成假分数即可。
2、对小于1的小数,分两种情况,有限小数和无限循环小数。
2.1、对有限小数比如0.326688=326688/1000000,这就转成真分数了,然后求分子分母的最大公约数,分子分母约去最大公约数即成最简真分数。
2.2、对无限循环小数又分两部分,不循环部分和循环部分。比如0.12356987987987……=0.12356+0.00000987987987……
不循环部分的求解参见2.1,循环部分可以如下求解。
x=0.00000987987987……
y=100000x=0.987987987……
1000y-y=987(循环节)
y=987/(1000-1)
x=y/100000
循环部分的值即为x
最后把不循环部分和循环部分两个分数相加即可
hangzhouhao
2011-01-27
打赏
举报
回复
分解成一个有限小数和单纯的循环数:
0.00000009...=0.0000001
[Quote=引用 7 楼 pmars 的回复:]
引用 3 楼 wizard_tiger 的回复:
0.33……是3/(10-1)
0.22……是2/(10-1)
0.2323……是23/(100-1)
关键是如何判断你这个数是个无限循环小数。
在弱弱的问一下:
如果是这样的数据呢?
0.474612399... -> 1186531/2500000
后面的9是循环的。。。
[/Quote]
pmars
2011-01-27
打赏
举报
回复
[Quote=引用 3 楼 wizard_tiger 的回复:]
0.33……是3/(10-1)
0.22……是2/(10-1)
0.2323……是23/(100-1)
关键是如何判断你这个数是个无限循环小数。
[/Quote]
在弱弱的问一下:
如果是这样的数据呢?
0.474612399... -> 1186531/2500000
后面的9是循环的。。。
hangzhouhao
2011-01-27
打赏
举报
回复
正解,找到循环的数字(可能是连续的几个),就可以求出对应的真分数了。
[Quote=引用 3 楼 wizard_tiger 的回复:]
0.33……是3/(10-1)
0.22……是2/(10-1)
0.2323……是23/(100-1)
关键是如何判断你这个数是个无限循环小数。
[/Quote]
Joe-xXx
2011-01-27
打赏
举报
回复
[Quote=引用 2 楼 pmars 的回复:]
引用 1 楼 wo65432519 的回复:
参考:
http://topic.csdn.net/t/20040805/14/3245444.html
http://hi.baidu.com/wei370/blog/item/5583b60794392785d53f7c68.html
可以给0.33...转化成???
是33/100 , 还是 1/3 ?
这个里面有循环啊……
[/Quote]
将大于1部分去掉不就成真分数了啊!
pstrunner
2011-01-27
打赏
举报
回复
应该达到一定精度就可以了吧。
[Quote=引用 3 楼 wizard_tiger 的回复:]
0.33……是3/(10-1)
0.22……是2/(10-1)
0.2323……是23/(100-1)
关键是如何判断你这个数是个无限循环小数。
[/Quote]
wizard_tiger
2011-01-27
打赏
举报
回复
0.33……是3/(10-1)
0.22……是2/(10-1)
0.2323……是23/(100-1)
关键是如何判断你这个数是个无限循环小数。
pmars
2011-01-27
打赏
举报
回复
[Quote=引用 1 楼 wo65432519 的回复:]
参考:
http://topic.csdn.net/t/20040805/14/3245444.html
http://hi.baidu.com/wei370/blog/item/5583b60794392785d53f7c68.html
[/Quote]
可以给0.33...转化成???
是33/100 , 还是 1/3 ?
这个里面有循环啊,照那个java的方法可能不行啊,因为无法先给他转化成真分数啊。。
zhuxueling
2011-01-27
打赏
举报
回复
0.11111 = 1/9 = 11/99 = ...
0.12121212 = 12/99 = 1212/9999 = ....
0.123123123= 123/999=123123/999999=...
Joe-xXx
2011-01-26
打赏
举报
回复
参考:
http://topic.csdn.net/t/20040805/14/3245444.html
http://hi.baidu.com/wei370/blog/item/5583b60794392785d53f7c68.html
c#
小数
化最简
分数
算法
c#
小数
化最简
分数
算法
: //
小数
化
分数
主函数 public static string XXtoBL(decimal XX) //
求
最大公约数的函数 public static int MaxY(int firstNumber, int secondNumber)
易语言-深入了解数据类型
易语言-深入了解数据类型各种数据类型在内存中的存储情况通过实战游戏对游戏进行读写功能CALL的调用加深...
小数
型08.双精度
小数
型09.逻辑型10.日期时间型11.文本型12.字节集13.DXF小练习-喇叭公告14.DXF小练习-透明无敌
一种
小数
转
分数
的
算法
(不限整除)C++
最近需要用到
小数
转
分数
算法
,便研究了一下。 先看一下最终程序的效果: 说一下数学中有理
小数
转
分数
的过程: 有理
小数
分为有限
小数
和无限循环
小数
1. 有限
小数
: 有限
小数
直接去
小数
点再约分即可。 例:1.55=155100=31201.55=\dfrac{155}{100}=\dfrac{31}{20} 2. 无限循环
小数
: 先判断循环节长度nn,原
小数
aa乘以10n10^n后再
C语言将循环
小数
/有限
小数
转
换为
分数
数学基础 早在小学的时候我就对循环
小数
非常感兴趣,加上初中和高中对循环
小数
可以说有一定基础研究,因此想到写一个将循环下
小数
转
换为
分数
的程序,非常有意思,并且对初学者来说,它的输入输出格式的
转
换也是一大难点。 首先必须明确一点,循环
小数
必定可以
转
换为
分数
,原因在于循环
小数
总可以分解为不循环的有限部分+循环的无限部分。前者对应一个
分数
,后者可以写成一个收敛的等比数列的和,也必定是可以
转
换为一个
分数
的。...
数据结构与算法
33,010
社区成员
35,327
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章