23 lines
748 B
JavaScript
23 lines
748 B
JavaScript
|
var plugin = {
|
||
|
level1: {
|
||
|
value: function precision(_name, value, options) {
|
||
|
if (!options.precision.enabled || value.indexOf('.') === -1) {
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
return value
|
||
|
.replace(options.precision.decimalPointMatcher, '$1$2$3')
|
||
|
.replace(options.precision.zeroMatcher, function(match, integerPart, fractionPart, unit) {
|
||
|
var multiplier = options.precision.units[unit].multiplier;
|
||
|
var parsedInteger = parseInt(integerPart);
|
||
|
var integer = Number.isNaN(parsedInteger) ? 0 : parsedInteger;
|
||
|
var fraction = parseFloat(fractionPart);
|
||
|
|
||
|
return Math.round((integer + fraction) * multiplier) / multiplier + unit;
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
module.exports = plugin;
|