求小数变成分数的算法? 先把小数转成10的N次方分之几的形式,然后算分子和分母的最大公数,再把分子和分母除以这个最大分约数,不就换成了最简分数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是这个算法不好写,不知道有没有现成的啊,大哥 临时写了一个,仅供参考。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) ); }} 测试通过,大侠啊,真是感谢了。好人、强人也 测试了一下,发现1/3, 1/7这样的转成小数后不能转回来了。请问各位有没有好办法 关于ObjectOutputStream和ObjectInputStream进行文件读取的问题 main方法 myeclipse UML 注册码。。。 如何用一个方法同时显示两种构造方法 Java中有相当于VC的CListCtrl的控件吗? 一个随机产生若干字母(A-Z间),直到出现字母Q停止,怎么写呀??? 制作chm帮助文件碰到的问题 求救高手—做个JTable 的打印,高分相送!400 我想用JAVA做一个俄罗斯方块和一个文本编辑器 vj中如何连接sqlserver???(直连接不是jdbc-odbc) 请教:关于null是否为关键字的问题 救解字符转义,一个是'一个是\
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) );
}}