Commit c8e29874 authored by GoshaZotov's avatar GoshaZotov

prefix calculation for convert formula

parent ed2de2bf
...@@ -1027,6 +1027,7 @@ ...@@ -1027,6 +1027,7 @@
var unitConverterArr = null; var unitConverterArr = null;
var availablePrefixMap = null; var availablePrefixMap = null;
var prefixValueMap = null;
function getUnitConverter(){ function getUnitConverter(){
if(null === unitConverterArr){ if(null === unitConverterArr){
...@@ -3209,8 +3210,23 @@ ...@@ -3209,8 +3210,23 @@
}; };
var generatePrefixAvailableMap = function(){ generateWeightAndMass();
generateDistance();
generateTime();
generatePressure();
generateForceAndEnergy();
generatePowerMagnetismTemperature();
generateVolume();
generateArea();
generateInformationAndSpeed();
}
return unitConverterArr;
}
function generatePrefixAvailableMap(){
if(!availablePrefixMap){
availablePrefixMap = {}; availablePrefixMap = {};
availablePrefixMap['Y'] = {}; availablePrefixMap['Y'] = {};
availablePrefixMap['Z'] = {}; availablePrefixMap['Z'] = {};
...@@ -4221,21 +4237,33 @@ ...@@ -4221,21 +4237,33 @@
availablePrefixMap['a']['m/sec'] = 1; availablePrefixMap['a']['m/sec'] = 1;
availablePrefixMap['z']['m/sec'] = 1; availablePrefixMap['z']['m/sec'] = 1;
availablePrefixMap['y']['m/sec'] = 1; availablePrefixMap['y']['m/sec'] = 1;
}
generateWeightAndMass();
generateDistance();
generateTime();
generatePressure();
generateForceAndEnergy();
generatePowerMagnetismTemperature();
generateVolume();
generateArea();
generateInformationAndSpeed();
generatePrefixAvailableMap();
}
return unitConverterArr; prefixValueMap = {};
prefixValueMap["Y"] = 1.00E+24;
prefixValueMap["Z"] = 1.00E+21;
prefixValueMap["E"] = 1.00E+18;
prefixValueMap["P"] = 1.00E+15;
prefixValueMap["T"] = 1.00E+12;
prefixValueMap["G"] = 1.00E+09;
prefixValueMap["M"] = 1.00E+06;
prefixValueMap["k"] = 1.00E+03;
prefixValueMap["h"] = 1.00E+02;
prefixValueMap["da"] = 1.00E+01;
prefixValueMap["e"] = 1.00E+01;
prefixValueMap["d"] = 1.00E-01;
prefixValueMap["c"] = 1.00E-02;
prefixValueMap["m"] = 1.00E-03;
prefixValueMap["u"] = 1.00E-06;
prefixValueMap["n"] = 1.00E-09;
prefixValueMap["p"] = 1.00E-12;
prefixValueMap["f"] = 1.00E-15;
prefixValueMap["a"] = 1.00E-18;
prefixValueMap["z"] = 1.00E-21;
prefixValueMap["y"] = 1.00E-24;
}
return availablePrefixMap;
} }
function getUnitConverterCoeff(from, to){ function getUnitConverterCoeff(from, to){
...@@ -4913,6 +4941,46 @@ ...@@ -4913,6 +4941,46 @@
var num = argArray[0]; var num = argArray[0];
var from = argArray[1]; var from = argArray[1];
var to = argArray[2]; var to = argArray[2];
var prefixFrom = null;
var prefixTo = null;
var parseFrefix = function(val){
var isPrefix = val.substr(0, 1);
var isOperator;
if(availablePrefixMap[isPrefix]){
isOperator = val.substring(1, val.length);
if(availablePrefixMap[isPrefix][isOperator]){
return {prefix: isPrefix, operator: isOperator};
}
}
isPrefix = val.substr(0, 2);
if(availablePrefixMap[isPrefix]){
isOperator = val.substring(2, val.length);
if(availablePrefixMap[isPrefix][isOperator]){
return {prefix: isPrefix, operator: isOperator};
}
}
};
generatePrefixAvailableMap();
var getPrefixFrom = parseFrefix(from);
var prefixValueFrom = null;
if(getPrefixFrom){
prefixFrom = getPrefixFrom.prefix;
from = getPrefixFrom.operator;
prefixValueFrom = prefixValueMap[prefixFrom];
}
var getPrefixTo = parseFrefix(to);
var prefixValueTo = null;
if(getPrefixTo){
prefixTo = getPrefixTo.prefix;
to = getPrefixTo.operator;
prefixValueTo = prefixValueMap[prefixTo];
}
var coeff; var coeff;
var res; var res;
...@@ -4946,6 +5014,13 @@ ...@@ -4946,6 +5014,13 @@
return new cError(cErrorType.not_available); return new cError(cErrorType.not_available);
} }
if(null !== prefixValueFrom){
res = res * prefixValueFrom;
}
if(null !== prefixValueTo){
res = res / prefixValueTo;
}
return new cNumber(res); return new cNumber(res);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment