编程语言
首页 > 编程语言> > 在Javascript中将十进制数转换为文本字符串分数?

在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