Commit c8e29874 authored by GoshaZotov's avatar GoshaZotov

prefix calculation for convert formula

parent ed2de2bf
......@@ -1027,6 +1027,7 @@
var unitConverterArr = null;
var availablePrefixMap = null;
var prefixValueMap = null;
function getUnitConverter(){
if(null === unitConverterArr){
......@@ -3209,8 +3210,23 @@
};
var generatePrefixAvailableMap = function(){
generateWeightAndMass();
generateDistance();
generateTime();
generatePressure();
generateForceAndEnergy();
generatePowerMagnetismTemperature();
generateVolume();
generateArea();
generateInformationAndSpeed();
}
return unitConverterArr;
}
function generatePrefixAvailableMap(){
if(!availablePrefixMap){
availablePrefixMap = {};
availablePrefixMap['Y'] = {};
availablePrefixMap['Z'] = {};
......@@ -4221,21 +4237,33 @@
availablePrefixMap['a']['m/sec'] = 1;
availablePrefixMap['z']['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){
......@@ -4913,6 +4941,46 @@
var num = argArray[0];
var from = argArray[1];
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 res;
......@@ -4946,6 +5014,13 @@
return new cError(cErrorType.not_available);
}
if(null !== prefixValueFrom){
res = res * prefixValueFrom;
}
if(null !== prefixValueTo){
res = res / prefixValueTo;
}
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