teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2015/02/16 01:17

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37474

answer CHANGED
@@ -23,3 +23,27 @@
23
23
   
24
24
   なお、本題から外れますが、その所得税の計算式間違えてますのでお気を付けください。控除はそこから引くんじゃないです。
25
25
  [所得税の税率|所得税|国税庁](https://www.nta.go.jp/taxanswer/shotoku/2260.htm)
26
+  
27
+  
28
+  
29
+ 追記
30
+ ```lang-javascript
31
+ function calcTax(income) {
32
+ return [
33
+ {income:0, rate:0},
34
+ {income:1950000, rate:0.05},
35
+ {income:3300000, rate:0.10},
36
+ {income:6950000, rate:0.20},
37
+ {income:9000000, rate:0.23},
38
+ {income:18000000, rate:0.33},
39
+ {income:40000000, rate:0.40},
40
+ {income:Infinity, rate:0.45}
41
+ ].reverse().reduce(function(r, c){
42
+ return {
43
+ sum: r.sum + Math.max( r.income - c.income, 0 ) * r.prev.rate,
44
+ income: Math.min( c.income, r.income),
45
+ prev: c
46
+ }
47
+ },{sum:0, income:income, prev:{income:0, rate:0}}).sum
48
+ }
49
+ ```

1

コードの修正

2015/02/16 01:17

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37474

answer CHANGED
@@ -17,7 +17,7 @@
17
17
  sum: r.sum + Math.max( r.income - taxRate[i+1].income, 0 ) * c.rate,
18
18
  income: Math.min( taxRate[i+1].income, r.income)
19
19
  }
20
- },{sum:0, income:income})
20
+ },{sum:0, income:income}).sum
21
21
  }
22
22
  ```
23
23