我想"1 1/2"
在 JavaScript 中进行转换,以便当我说 print x (where x = "1 1/2"
) 时它返回1.5
.
目前正在使用以下代码
var value = $('#ingredients-1-quantity').val();
var fraction = Number(value);
if(isNaN(fraction)) {
if(hasFraction = parseFrac(value)) {
$('#ingredients-1-quantity-hidden').val(hasFraction);
}
else {
$('#ingredients-1-quantity').val('');
$('#ingredients-1-quantity-hidden').val('');
}
}
function parseFrac(frac) {
frac = frac.split(/ ?(\d+)\/(\d+)/);
if(!isNaN(parseInt(frac[2])))
return Math.round(frac[0] * 1 + frac[1] / frac[2], 3);
else
return false;
}
此外,代码应该处理整数和浮点值。例如,如果我说 print 1
OR print1.5
它将按原样返回。
我正在详细说明。我有一个成分表,我在其中提供文本字段,用户将在其中提供食物数量。这可以是浮点数、整数或分数。
例如
- 1/2茶匙盐
- 1 1/2茶匙辣椒粉
- 2.5茶匙大蒜粉
- 2茶匙奶油色辣根
如果用户以浮点数或整数形式提供值,那很好,但如果用户以分数形式提供值,那么我将其转换为浮点数。
在视图页面上,可以按原样显示数量(由用户输入),但对于内部使用,我必须将分数保持为浮点数。
我用上面的代码得到了这个。感谢@Rocket 的想法