Вы можете выполнить математические операции над amt
, чтобы преобразовать его в целочисленное значение в диапазоне, а затем использовать его в качестве индекса для поиска в массиве, чтобы получить текст дроби.
Это может быть просто, есливаши диапазоны равны, но так как у вас есть примерно 1/10 (от 0,3 до 0,4) и около 2/10 (от 0,5 до 0,7), это немного сложнее, чем просто умножить на 10.
fractional = {
fractions: [ "1/8", "1/8", "1/4", "1/3", "1/2", "2/3", "2/3", "3/4", "7/8", "1" ],
toFraction: function(amt) {
return this.fractions[(""+(amt*10)).split('.')[0]];
}
};
alert(fractional.toFraction(0.37));