从度数转换为弧度时如何以分数形式而不是小数形式显示结果

问题描述 投票:0回答:1

我使用 math.js 库来创建一个计算器,可以将任何数字从弧度转换为角度,反之亦然。计算工作完美,但当尝试将结果从度数显示为弧度时,问题就出现了。例如,如果我将 360 度计算为弧度,它将返回 6.28,而不是 2π。从弧度到度数,它完美地显示结果,因为它不需要以分数形式加上 pi 符号给我结果。有没有办法将我的答案转换为分数形式并添加 pi 符号?

我的HTML:

         <section id="Radian/Deegree_Converter">
            <h3 id="Radian/DegreeTitle">Radian-Degree Converter</h3>
            <input type="text" placeholder="Number" id="placeDegRadNumber">
               <span>=</span>
               <input type="text" placeholder="Result" id="displayDegRadResult">

               <select id="assignDegRadUnit">
                  <option value="choseDegrees">Degrees</option>
                  <option value="choseRadians">Radians</option>
               </select>

               <select id="convertToDegRadUnit">
                  <option value="choseDegrees">Degrees</option>
                  <option value="choseRadians">Radians</option>
               </select>
               <button id="piButton">π</button>

               <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.1.0/math.min.js"></script>
         </section>

我的Javascript:

//RadianDegree Converter---------------------------------------------------------------------------------------   


    const numberInput = document.getElementById('placeDegRadNumber');
    const resultInput = document.getElementById('displayDegRadResult');
    const assignUnitSelect = document.getElementById('assignDegRadUnit');
    const convertToUnitSelect = document.getElementById('convertToDegRadUnit');
    const piButton = document.getElementById('piButton');

    piButton.addEventListener('click', function () {
        numberInput.value += 'π';
        convertUnits(); // Trigger conversion when π is added
    });

    numberInput.addEventListener('input', convertUnits);
    assignUnitSelect.addEventListener('change', convertUnits);
    convertToUnitSelect.addEventListener('change', convertUnits);

    function convertUnits() {
        const inputValue = math.evaluate(numberInput.value.replace(/π/g, 'pi')) || 0;
        const assignUnit = assignUnitSelect.value;
        const convertToUnit = convertToUnitSelect.value;
    
        let result;
    
        if (assignUnit === 'choseDegrees' && convertToUnit === 'choseRadians') {
            result = math.format(math.unit(inputValue, 'deg').to('rad'), { fraction: 'ratio' });
        } else if (assignUnit === 'choseRadians' && convertToUnit === 'choseDegrees') {
            result = math.format(math.unit(inputValue, 'rad').to('deg'), { fraction: 'ratio' });
        } else {
            result = inputValue;
        }
    
        // Remove the unit label from the result and update the input field
        resultInput.value = Number(result.replace(/[^\d.-]/g, '')).toFixed(2);    
    }

我尝试添加一个带有π符号的字符串,以便在以分数形式显示结果时添加,但它不起作用

javascript math calculator fractions math.js
1个回答
0
投票

我认为你应该做如下的事情:

finalResult = Number(result.replace(/[^\d.-]/g, '')).toFixed(2);
finalResultByPi = (finalResult/3.14);
resultInput.value = finalResultByPi + 'Π'
© www.soinside.com 2019 - 2024. All rights reserved.