我创建了一个表单,其中包含有关使用 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/