Финансовые расчеты в Vue.js - Использование вычислительных методов - PullRequest
0 голосов
/ 20 сентября 2018

Я создал форму с подробной информацией об активе при использовании Vue и несколькими полями для расчета стоимости и амортизации актива.

Однако поле deprec_carried_forward, похоже, объединяет значение deprec_brought_fwd иdeprec_charges значений вместе.

Кажется, это происходит потому, что значение deprec_charges возвращается из его собственного вычисленного метода, так как deprec_disposals value вводится и вычитается из значения в deprec_carried_forwardправильно.

например,

Амортизационные отчисления * Вперед : (напечатано) 10

Амортизационные отчисления : (рассчитано) 3,3

Утилизация амортизации : (напечатано) 2

Амортизация, перенесенная вперед : 101,3 (вычислено: должно быть 11,3)

Мои вычисленные методыявляются:

    computed: {
        costs_carried_fwd: function(){
            return this.financial(this.costs_brought_fwd + this.cost_additions - this.cost_disposals);
        },
        deprec_charges: function(){
            return this.financial(this.costs_carried_fwd * 0.33);
        },
        deprec_carried_fwd: function(){
            return this.financial(this.deprec_brought_fwd + this.deprec_charges - this.deprec_disposals);
        },
        net_book_value: function(){
            return this.financial(this.costs_carried_fwd - this.deprec_carried_fwd);
        }
    },

См. jsFiddle https://jsfiddle.net/nickdavies07/gkj6Ldf4/

1 Ответ

0 голосов
/ 20 сентября 2018

Ваша проблема в том, что ваш financial метод использует toFixed, который возвращает строку.

Это нормально, когда вы просто делаете один вызов с ним.Но в тот момент, когда вы начинаете добавлять и вычитать их, вы заканчиваете конкатенацией строк вместо добавления чисел.

Вам необходимо выполнить форматирование после выполнения всех числовых вычислений.

Я недостаточно знаком с Vue, чтобы знать правильное место для размещения вашего числа в строке с логикой с двумя десятичными знаками, но в других средах MVC (таких как Rails) вы бы использовали вспомогательный метод в представлении для этого.

Редактировать: Также стоит отметить, что, тем более что это финансовое приложение, вам ДЕЙСТВИТЕЛЬНО нужно отложить любые сокращения чисел до самого конца, иначе вы получите ошибки округления при выполнении большего количества математических операций.,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...