fix: math filters now return number, resolves #110

* fix linting
* numbers are no longer fixed:
    i.e. {{0.3 | minus 0.1}} now renders as 0.19999
    Stick to JavaScript number behavior, see: 8.0.0
This commit is contained in:
harttle
2019-02-28 13:02:51 +08:00
parent 21d674e22b
commit b4acdb463a
13 changed files with 1960 additions and 1981 deletions
+3 -15
View File
@@ -3,24 +3,12 @@ export default {
'ceil': (v: number) => Math.ceil(v),
'divided_by': (v: number, arg: number) => v / arg,
'floor': (v: number) => Math.floor(v),
'minus': bindFixed((v: number, arg: number) => v - arg),
'modulo': bindFixed((v: number, arg: number) => v % arg),
'minus': (v: number, arg: number) => v - arg,
'modulo': (v: number, arg: number) => v % arg,
'round': (v: number, arg: number = 0) => {
const amp = Math.pow(10, arg)
return Math.round(v * amp) / amp
},
'plus': bindFixed((v: number, arg: number) => Number(v) + Number(arg)),
'plus': (v: number, arg: number) => Number(v) + Number(arg),
'times': (v: number, arg: number) => v * arg
}
function getFixed (v: number) {
const p = String(v).split('.')
return (p.length > 1) ? p[1].length : 0
}
function bindFixed (cb: (v: number, arg: number) => number) {
return (l: number, r: number) => {
const f = Math.max(getFixed(l), getFixed(r))
return cb(l, r).toFixed(f)
}
}