function gcd(a, b) {
return (b) ? gcd(b, a % b) : a;
}
var dec2Frac = function (d) {
var top = d.toString().replace(/\d+[.]/, '');
var bot = Math.pow(10, top.length);
if (d > 1) {
top = +top + Math.floor(d) * bot;
}
var x = gcd(top, bot);
var r1 = top / x;
var r2 = bot / x;
var frac = r1 + "/" + r2;
var parts = frac.split('/');
var simpler = parts[0][0]+'/'+parts[1][0];
return simpler;
};
640x960
=を入力すると0.66666666666667
私は結果が2/3
ここで明らかであることを期待しています: http://www.mindspring.com/~alanh/fracs.html
代わりに、この関数は を返します6/1
。ここでテスト: http://jsbin.com/asoxud/1/