1
我有一系列配方成分,例如「1-1/2」,爲了根據份量計算,我需要將其改爲適當的數字,例如「1.5」。如何將混合分數更改爲十進制數?我已經看到了eval函數,它適用於諸如「1/2」之類的東西,但對於諸如「1-1/2」之類的東西,它評估爲「.5」。Javascript - 將混合分數轉換爲十進制
感謝您的幫助!
我有一系列配方成分,例如「1-1/2」,爲了根據份量計算,我需要將其改爲適當的數字,例如「1.5」。如何將混合分數更改爲十進制數?我已經看到了eval函數,它適用於諸如「1/2」之類的東西,但對於諸如「1-1/2」之類的東西,它評估爲「.5」。Javascript - 將混合分數轉換爲十進制
感謝您的幫助!
注意:添加您的安全檢查(如確保有一個 「 - 」 輸入等)
代碼:
function toDecimal(_x) {
var parts = _x.split("-");
var decParts = parts[1].split("/");
return parseInt(parts[0], 10) +
(parseInt(decParts[0], 10)/parseInt(decParts[1], 10));
}
var x = "1-1/2";
console.log(toDecimal(x));
假設 「 - 」 是你的分隔符,當您使用fraction.js時,您可以想出如下內容:
function getDecimal(str) {
var f, s = str.split("-");
if (s.length > 1) {
f = new Fraction(s[0]).add(s[1]);
} else {
f = new Fraction(str);
}
return f.valueOf();
}
console.log(getDecimal("1-1/2")); // 1.5
console.log(getDecimal("1/2")); // 0.5