在Javascript中将十进制数转换为文本字符串分数?
作者:互联网
我有一个以数字形式返回的值,可以是十进制数,例如“1.15”.
但是,我需要将范围内的所有数字格式化为给定的分数.例如,所有大于0但小于.2的数字我想返回“1/8”.
我已经开始将这个作为一系列if / else语句开始,但我想知道是否有更智能和更整洁的方式.
if (amt > 0 && amt <= .2){
q = '1/8';
} else if (amt > .2 && amt <= .3){
q = '1/4';
} else if (amt > .3 && amt <= .4){
q = '1/3';
} else if (amt > .4 && amt <= .5){
q = '1/2';
} else if (amt > .5 && amt <= .7){
q = '2/3';
} else if (amt > .7 && amt <= .8){
q = '3/4';
} else if (amt > .8 && amt <= 1.0){
q = '7/8';
} else if (amt > 1 && amt <= 1.1){
q = '1';
} etc.....
解决方法:
将您的代码移动到一个函数中,您可以从正确的分支返回并跳过所有else语句,这会非常显着地清理它们:
function toFraction(amt) {
if (amt > 0 && amt <= .2) return '1/8';
if (amt <= .3) return '1/4';
if (amt <= .4) return '1/3';
if (amt <= .5) return '1/2';
// etc
}
标签:javascript,fractions 来源: https://codeday.me/bug/20190530/1186094.html