UNPKG

mathsteps-experimental-fork

Version:

Step by step math solutions. Experimental Fork

32 lines (28 loc) 1.12 kB
'use strict'; const config = require('../../config.js'); const index = require('../../node/index.js'); const ChangeTypes = require('../../types/changeType/ChangeTypes.js'); // Converts a decimal number to fraction // e.g. 3.14 -> 314/100 function convertDecimalToFraction(node, simplifyCtx) { let rv = null; const isNumericalMode = simplifyCtx.expressionCtx ? simplifyCtx.expressionCtx.isNumerical() : false; if (!isNumericalMode && index.default.Type.isConstant(node) && config.default.isNumeric(node.value) && !config.default.isInteger(node.value)) { // Node is non-integer constant e.g. 3.14. const fractionValues = node.value.toFraction(); const numeratorNode = index.default.Creator.constant(fractionValues[0]); const denominatorNode = index.default.Creator.constant(fractionValues[1]); const newNode = index.default.Creator.operator('/', [numeratorNode, denominatorNode]); rv = { changeType: ChangeTypes.ChangeTypes.KEMU_DECIMAL_TO_FRACTION, rootNode: newNode, }; } return rv } module.exports = convertDecimalToFraction;