javascript - Vue.js 中的财务计算 - 使用计算方法

标签 javascript laravel vue.js

我创建了一个表单,其中包含有关使用 Vue 的 Assets 详细信息,以及几个用于计算 Assets 成本和折旧的字段。

但是deprec_carried_forward字段似乎连接 deprec_brought_fwd值和 deprec_charges共同值(value)观。

这似乎是因为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/

最佳答案

您的问题是您的 financial 方法使用 toFixed,它返回一个字符串。

当您只用它进行一次调用时,这很好。但是,当您开始对它们进行加法和减法时,您最终会连接字符串而不是添加数字。

执行完所有数值计算后,您需要进行格式化。

我对 Vue 不太熟悉,不知道将数字放入具有两位小数逻辑的字符串的正确位置,但在其他 MVC 框架(如 Rails)中,您可以在 View 中使用辅助方法。

编辑: 另外值得注意的是,特别是因为这是一个金融应用程序,您确实需要将任何数字 chop 延迟到最后,否则当您执行更多数学运算时,您最终会出现舍入错误。

关于javascript - Vue.js 中的财务计算 - 使用计算方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52426797/

相关文章:

javascript - RegEx(在 JavaScript 中查找/替换)- 匹配非字母数字字符但忽略 - 和 +

javascript - 如何读取远程机器上的IndexedDB?

laravel livewire 数据未显示在模态中

php - 拉维尔 4 : How do I create a non-primary auto incrementing column with migrations?

javascript - v-list-item-group 一次选择所有/取消选择所有项目

javascript - 如何从 pg-promises 中的子 promise 向父 promise 抛出错误

javascript - Appium错误:uncaughtException:无法读取null的属性“executeAtom”

CSS 在 Laravel 中不起作用

vue.js - 无法选择第三方Vue插件生成的元素

webpack - 如何在nuxt中添加流(flowtype)支持?