UNPKG

mathsteps-experimental-fork

Version:

Step by step math solutions. Experimental Fork

30 lines (27 loc) 1.03 kB
import math from '../../config.js'; import Node from '../../node/index.js'; import { ChangeTypes } from '../../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 && Node.Type.isConstant(node) && math.isNumeric(node.value) && !math.isInteger(node.value)) { // Node is non-integer constant e.g. 3.14. const fractionValues = node.value.toFraction(); const numeratorNode = Node.Creator.constant(fractionValues[0]); const denominatorNode = Node.Creator.constant(fractionValues[1]); const newNode = Node.Creator.operator('/', [numeratorNode, denominatorNode]); rv = { changeType: ChangeTypes.KEMU_DECIMAL_TO_FRACTION, rootNode: newNode, }; } return rv } export { convertDecimalToFraction as default };