$value = StringHelper::round($value, 2);
/**
* @param $val
* @param int $precision
* @param int $mode
* @return string
*/
public static function round($val, $precision = 0, $mode = PHP_ROUND_HALF_UP): string
{
$val = round($val, $precision, $mode);
if ($precision > 0) {
$pos = strpos($val, '.');
if ($pos === false) {
$val .= '.' . str_repeat('0', $precision);
} else {
$zeroNum = $precision - (strlen($val) - $pos - 1);
if ($zeroNum > 0) {
$val .= str_repeat('0', $zeroNum);
}
}
}
if (strpos($val, '.') === false && $precision > 0) {
$val .= '.' . str_repeat('0', $precision);
}
return $val;
}
// {{ productionN(dmsItem.calculateValue, 2) + '%' }}
productionN (v, n) {
const len = v.length
let pos = v.indexOf('.')
if (pos < 0) {
if (v == 0 || v == 1) {
return v == 0 ? 0 : 100
} else {
return parseInt(v)
}
}
pos += n
if (pos >= len) {
v = parseInt(v.replace('.', ''))
for (let i = 0; i < pos - len + 1; i++) {
v += '0'
}
return v
}
const partOne = v.substr(0, pos + 1).replace('.', '')
const partTwo = v.substr(pos + 1).replace(/0+$/, '')
if (partTwo === '') {
return parseInt(partOne)
}
return parseInt(partOne) + '.' + partTwo
},