質問編集履歴

3

PHPバージョンを追記

2019/09/04 06:23

投稿

whimyama
whimyama

スコア9

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,8 @@
1
1
  税率対応で誤差が出ます。
2
+
3
+
4
+
5
+ PHPバージョンは「PHP 5.3.18」です。
2
6
 
3
7
 
4
8
 

2

コードを実行可能な書式へ変更

2019/09/04 06:23

投稿

whimyama
whimyama

スコア9

test CHANGED
File without changes
test CHANGED
@@ -14,9 +14,9 @@
14
14
 
15
15
  // 税率
16
16
 
17
- $taxRate=0.080
17
+ $taxRate=0.080;
18
18
 
19
- //$taxRate=0.100
19
+ //$taxRate=0.100;
20
20
 
21
21
 
22
22
 

1

コードを実行可能な書式へ変更

2019/09/04 06:22

投稿

whimyama
whimyama

スコア9

test CHANGED
File without changes
test CHANGED
@@ -10,53 +10,83 @@
10
10
 
11
11
  ```ここに言語を入力
12
12
 
13
+
14
+
13
- /*抜処理 */
15
+ //
16
+
17
+ $taxRate=0.080
18
+
19
+ //$taxRate=0.100
20
+
21
+
22
+
23
+ // 端数区分
24
+
25
+ $taxHasu="1";
26
+
27
+ //$taxHasu="2";
28
+
29
+ //$taxHasu="3";
30
+
31
+
32
+
33
+ // 価格
34
+
35
+ $price=1000;
14
36
 
15
37
 
16
38
 
17
39
  // 計算誤差を考慮
18
40
 
19
- $calctaxRate = (1 + 税率) * 100;
41
+ $calctaxRate = (1 + $taxRate) * 100;
20
42
 
21
43
 
22
44
 
23
- if ( 切捨て ) {
45
+ /******** 税抜処理 **************************/
24
46
 
25
- 税抜価格=ceil( (税込価格/$calctaxRate) * 100));
47
+ // 切捨て
26
48
 
27
- } else if ( 四捨五入 ) {
49
+ if ( $taxHasu == "1" ) {
28
50
 
29
- 税抜価格=round( (税込価格/$calctaxRate) * 100);
51
+ $outPrice=ceil( ($price/$calctaxRate) * 100);
30
52
 
31
- } else if ( 切上げ ) {
53
+ // 四捨五入
32
54
 
55
+ } else if ( $taxHasu == "2" ) {
56
+
57
+ $outPrice=round( ($price/$calctaxRate) * 100);
58
+
59
+ // 切上げ
60
+
61
+ } else if ( $taxHasu == "3" ) {
62
+
33
- 税抜価格=floor( (税込価格/$calctaxRate) * 100);
63
+ $outPrice=floor( ($price/$calctaxRate) * 100);
34
64
 
35
65
  }
36
66
 
37
67
 
38
68
 
39
- /* 税込処理 */
40
69
 
41
70
 
71
+ /******** 税込処理 **************************/
42
72
 
43
- // 計算誤差を考慮
73
+ // 切捨て
44
74
 
45
- $calctaxRate = (1 + 税率) * 100;
75
+ if ( $taxHasu == "1" ) {
46
76
 
77
+ $inPrice=floor(($price*$calctaxRate)/100);
47
78
 
79
+ // 四捨五入
48
80
 
49
- if ( 切捨て ) {
81
+ } else if ( $taxHasu == "2" ) {
50
82
 
51
- 税込価格=floor((税抜価格*$calctaxRate)/100);
83
+ $inPrice=round(($price*$calctaxRate)/100);
52
84
 
53
- } else if ( 四捨五入 ) {
85
+ // 切上げ
54
86
 
55
- 税込価格=round((税抜価格*$calctaxRate)/100);
87
+ } else {
56
88
 
57
- } else if ( 切上げ ) {
58
-
59
- 税込価格=ceil((税抜価格*$calctaxRate)/100);
89
+ $inPrice=ceil(($price*$calctaxRate)/100);
60
90
 
61
91
  }
62
92