社区
Java SE
帖子详情
求小数变成分数的算法?
ppcodeyes
2004-08-05 02:43:38
比如:
0.12 => 3/25
0.5 => 1/2
0.58 => 29/50
现在不知道如何才能自动换成最简分数。
万分感觉
...全文
710
12
打赏
收藏
求小数变成分数的算法?
比如: 0.12 => 3/25 0.5 => 1/2 0.58 => 29/50 现在不知道如何才能自动换成最简分数。 万分感觉
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ppcodeyes
2004-08-08
打赏
举报
回复
测试了一下,发现1/3, 1/7这样的转成小数后不能转回来了。请问各位有没有好办法
junmayang
2004-08-05
打赏
举报
回复
我一分都没有!
charmguy
2004-08-05
打赏
举报
回复
收藏
ppcodeyes
2004-08-05
打赏
举报
回复
结帐啦
whasx
2004-08-05
打赏
举报
回复
厉害
ppcodeyes
2004-08-05
打赏
举报
回复
测试通过,大侠啊,真是感谢了。好人、强人也
ppcodeyes
2004-08-05
打赏
举报
回复
万分感激,先试试看。
liutang2
2004-08-05
打赏
举报
回复
强
Lutx
2004-08-05
打赏
举报
回复
临时写了一个,仅供参考。
package ltx;
import java.lang.String;
public class Xs2fs {
public static String xs2fs(double fNumber) {
String sA = String.valueOf(fNumber);
if (sA.indexOf(".") < 0) {
// fNumber is an integer
return sA;
}
String sZsbf = sA.substring(0,sA.indexOf(".") );
String sXsbf = sA.substring(sA.indexOf(".") + 1);
int nXsws = sXsbf.length() ; //小数位数
long lFenmu = 1;
for (int k=0; k< nXsws; k++)
lFenmu *= 10;
long lFenzi = Long.parseLong( sZsbf + sXsbf );
long lXs = (lFenzi < lFenmu) ? lFenzi : lFenmu;
long j = 1; //最大公约数
for (j = lXs; j > 1; j --) {
if (lFenzi % j ==0 && lFenmu % j == 0) {
break;
}
}
lFenzi = lFenzi / j;
lFenmu = lFenmu / j;
return String.valueOf(lFenzi) + "/" + String.valueOf(lFenmu) ;
}
public static void main(String[] args) {
System.out.println ( xs2fs(1.24) );
}
}
ppcodeyes
2004-08-05
打赏
举报
回复
god 在哪儿啊
ppcodeyes
2004-08-05
打赏
举报
回复
就是这个算法不好写,不知道有没有现成的啊,大哥
junmayang
2004-08-05
打赏
举报
回复
先把小数转成10的N次方分之几的形式,然后算分子和分母的最大公数,再把分子和分母除以这个最大分约数,不就换成了最简分数?
小数
化
分数
(
算法
)
循环
小数
化
分数
的
算法
,acm的同学都可以参考,仅供参考!
数学笔记19-什么是欧几里得
算法
?
什么是欧几里得
算法
? 欧几里得
算法
是
求
两个整数最大公约数的快速
算法
。 一、最大公约数The Greatest Common Divisor 如果整数A能被p整除,A就叫p的倍数,而p就是A的约数。例如25能被5整除,25是5的倍数,5就是25的约数。 几个整数共有的约数,叫做这几个整数的公约数。其中最大的公约数,叫做这几个数的最大公约数,简写成GCD---the Greatest Common Divisor。 用纯数学语言给最大公约下定义: 如果两个整数A和B有n(n≥1)个公约数P1,P2,,,,Pn,而且P1
算法The Euclidean Algorithm 欧几里得
算法
是一种快速找到两个整数的最大公约数GCD的方法,也被称为“辗转相除法”。 三、欧几里得
算法
第4条规则的证明
(中小学教育)为什么
分数
不能化成无限不循环
小数
.doc
(中小学教育)为什么
分数
不能化成无限不循环
小数
.doc
小数
乘法计算练习题精选.doc
小数
乘法计算练习题精选.doc
小学五年级
小数
乘除法计算题汇编.doc
小学五年级
小数
乘除法计算题汇编.doc
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章