Przeglądaj źródła

Conversion operations now support BigNumbers

n1474335 7 lat temu
rodzic
commit
7992a540ae
2 zmienionych plików z 30 dodań i 31 usunięć
  1. 10 10
      src/core/config/OperationConfig.js
  2. 20 21
      src/core/operations/Convert.js

+ 10 - 10
src/core/config/OperationConfig.js

@@ -2515,8 +2515,8 @@ const OperationConfig = {
     "Convert distance": {
     "Convert distance": {
         module: "Default",
         module: "Default",
         description: "Converts a unit of distance to another format.",
         description: "Converts a unit of distance to another format.",
-        inputType: "number",
-        outputType: "number",
+        inputType: "BigNumber",
+        outputType: "BigNumber",
         args: [
         args: [
             {
             {
                 name: "Input units",
                 name: "Input units",
@@ -2533,8 +2533,8 @@ const OperationConfig = {
     "Convert area": {
     "Convert area": {
         module: "Default",
         module: "Default",
         description: "Converts a unit of area to another format.",
         description: "Converts a unit of area to another format.",
-        inputType: "number",
-        outputType: "number",
+        inputType: "BigNumber",
+        outputType: "BigNumber",
         args: [
         args: [
             {
             {
                 name: "Input units",
                 name: "Input units",
@@ -2551,8 +2551,8 @@ const OperationConfig = {
     "Convert mass": {
     "Convert mass": {
         module: "Default",
         module: "Default",
         description: "Converts a unit of mass to another format.",
         description: "Converts a unit of mass to another format.",
-        inputType: "number",
-        outputType: "number",
+        inputType: "BigNumber",
+        outputType: "BigNumber",
         args: [
         args: [
             {
             {
                 name: "Input units",
                 name: "Input units",
@@ -2569,8 +2569,8 @@ const OperationConfig = {
     "Convert speed": {
     "Convert speed": {
         module: "Default",
         module: "Default",
         description: "Converts a unit of speed to another format.",
         description: "Converts a unit of speed to another format.",
-        inputType: "number",
-        outputType: "number",
+        inputType: "BigNumber",
+        outputType: "BigNumber",
         args: [
         args: [
             {
             {
                 name: "Input units",
                 name: "Input units",
@@ -2587,8 +2587,8 @@ const OperationConfig = {
     "Convert data units": {
     "Convert data units": {
         module: "Default",
         module: "Default",
         description: "Converts a unit of data to another format.",
         description: "Converts a unit of data to another format.",
-        inputType: "number",
-        outputType: "number",
+        inputType: "BigNumber",
+        outputType: "BigNumber",
         args: [
         args: [
             {
             {
                 name: "Input units",
                 name: "Input units",

+ 20 - 21
src/core/operations/Convert.js

@@ -60,17 +60,16 @@ const Convert = {
     /**
     /**
      * Convert distance operation.
      * Convert distance operation.
      *
      *
-     * @param {number} input
+     * @param {BigNumber} input
      * @param {Object[]} args
      * @param {Object[]} args
-     * @returns {number}
+     * @returns {BigNumber}
      */
      */
     runDistance: function (input, args) {
     runDistance: function (input, args) {
         let inputUnits = args[0],
         let inputUnits = args[0],
             outputUnits = args[1];
             outputUnits = args[1];
 
 
-        input = input * Convert.DISTANCE_FACTOR[inputUnits];
-        return input / Convert.DISTANCE_FACTOR[outputUnits];
-        // TODO Remove rounding errors (e.g. 1.000000000001)
+        input = input.mul(Convert.DISTANCE_FACTOR[inputUnits]);
+        return input.div(Convert.DISTANCE_FACTOR[outputUnits]);
     },
     },
 
 
 
 
@@ -141,16 +140,16 @@ const Convert = {
     /**
     /**
      * Convert data units operation.
      * Convert data units operation.
      *
      *
-     * @param {number} input
+     * @param {BigNumber} input
      * @param {Object[]} args
      * @param {Object[]} args
-     * @returns {number}
+     * @returns {BigNumber}
      */
      */
     runDataSize: function (input, args) {
     runDataSize: function (input, args) {
         let inputUnits = args[0],
         let inputUnits = args[0],
             outputUnits = args[1];
             outputUnits = args[1];
 
 
-        input = input * Convert.DATA_FACTOR[inputUnits];
-        return input / Convert.DATA_FACTOR[outputUnits];
+        input = input.mul(Convert.DATA_FACTOR[inputUnits]);
+        return input.div(Convert.DATA_FACTOR[outputUnits]);
     },
     },
 
 
 
 
@@ -221,16 +220,16 @@ const Convert = {
     /**
     /**
      * Convert area operation.
      * Convert area operation.
      *
      *
-     * @param {number} input
+     * @param {BigNumber} input
      * @param {Object[]} args
      * @param {Object[]} args
-     * @returns {number}
+     * @returns {BigNumber}
      */
      */
     runArea: function (input, args) {
     runArea: function (input, args) {
         let inputUnits = args[0],
         let inputUnits = args[0],
             outputUnits = args[1];
             outputUnits = args[1];
 
 
-        input = input * Convert.AREA_FACTOR[inputUnits];
-        return input / Convert.AREA_FACTOR[outputUnits];
+        input = input.mul(Convert.AREA_FACTOR[inputUnits]);
+        return input.div(Convert.AREA_FACTOR[outputUnits]);
     },
     },
 
 
 
 
@@ -332,16 +331,16 @@ const Convert = {
     /**
     /**
      * Convert mass operation.
      * Convert mass operation.
      *
      *
-     * @param {number} input
+     * @param {BigNumber} input
      * @param {Object[]} args
      * @param {Object[]} args
-     * @returns {number}
+     * @returns {BigNumber}
      */
      */
     runMass: function (input, args) {
     runMass: function (input, args) {
         let inputUnits = args[0],
         let inputUnits = args[0],
             outputUnits = args[1];
             outputUnits = args[1];
 
 
-        input = input * Convert.MASS_FACTOR[inputUnits];
-        return input / Convert.MASS_FACTOR[outputUnits];
+        input = input.mul(Convert.MASS_FACTOR[inputUnits]);
+        return input.div(Convert.MASS_FACTOR[outputUnits]);
     },
     },
 
 
 
 
@@ -397,16 +396,16 @@ const Convert = {
     /**
     /**
      * Convert speed operation.
      * Convert speed operation.
      *
      *
-     * @param {number} input
+     * @param {BigNumber} input
      * @param {Object[]} args
      * @param {Object[]} args
-     * @returns {number}
+     * @returns {BigNumber}
      */
      */
     runSpeed: function (input, args) {
     runSpeed: function (input, args) {
         let inputUnits = args[0],
         let inputUnits = args[0],
             outputUnits = args[1];
             outputUnits = args[1];
 
 
-        input = input * Convert.SPEED_FACTOR[inputUnits];
-        return input / Convert.SPEED_FACTOR[outputUnits];
+        input = input.mul(Convert.SPEED_FACTOR[inputUnits]);
+        return input.div(Convert.SPEED_FACTOR[outputUnits]);
     },
     },
 
 
 };
 };