「1-1/2」のような一連のレシピの材料がリストされていますが、1食分量に応じて計算するには「1.5」のような適切な数に変更する必要があります。混合分数を10進数に変更するにはどうすればよいですか?「1/2」のようなもので機能するeval関数を見たことがありますが、「1-1/2」のようなものでは「.5」と評価されます。
ご協力いただきありがとうございます!
「1-1/2」のような一連のレシピの材料がリストされていますが、1食分量に応じて計算するには「1.5」のような適切な数に変更する必要があります。混合分数を10進数に変更するにはどうすればよいですか?「1/2」のようなもので機能するeval関数を見たことがありますが、「1-1/2」のようなものでは「.5」と評価されます。
ご協力いただきありがとうございます!
注:安全チェックを追加してください(入力に「-」があることを確認するなど)
コード:
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));