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

回答編集履歴

3

誤り訂正

2018/01/31 03:38

投稿

otn
otn

スコア86349

answer CHANGED
@@ -18,7 +18,7 @@
18
18
  $format = Array("YEN"=>": %.0f <br>", "BTC"=>": %.8f <br>", ・・・・・・);
19
19
 
20
20
  foreach($json_decode as $key => $val ){
21
- printf($val["currency_code"].$format($val["currency_code"]).PHP_EOL . $val["amount"]);
21
+ printf($val["currency_code"].$format($val["currency_code"]).PHP_EOL , $val["amount"]);
22
22
  }
23
23
 
24
24
  ```

2

追記を受けて

2018/01/31 03:38

投稿

otn
otn

スコア86349

answer CHANGED
@@ -6,4 +6,19 @@
6
6
 
7
7
  #追記を受けて
8
8
  `printf`の`%f`は、「小数点以下6桁まで表示しろ」という指示です。
9
- `%.8f`で、「小数点以下8桁まで表示しろ」という意味になります(ピリオドを忘れずに)。
9
+ `%.8f`で、「小数点以下8桁まで表示しろ」という意味になります(ピリオドを忘れずに)。
10
+
11
+ #通貨ごとに変える
12
+ > 通貨により小数点以下の桁数がバラバラです。
13
+
14
+ を見落としていました。
15
+ という事であれば、個別に精度を指定するしかないですね。
16
+ あと、変数`$val`を活用しましょう。`$json_decode[$key]`が入っています。
17
+ ```PHP
18
+ $format = Array("YEN"=>": %.0f <br>", "BTC"=>": %.8f <br>", ・・・・・・);
19
+
20
+ foreach($json_decode as $key => $val ){
21
+ printf($val["currency_code"].$format($val["currency_code"]).PHP_EOL . $val["amount"]);
22
+ }
23
+
24
+ ```

1

追記を受けて

2018/01/31 02:07

投稿

otn
otn

スコア86349

answer CHANGED
@@ -2,4 +2,8 @@
2
2
  「小数点以下6桁まで表示しろ」というプログラムを書いたからだと思います。
3
3
  「小数点以下8桁まで表示しろ」というプログラムに修正したらいいかと思います。
4
4
 
5
- 今のプログラムを書いてもらえば、何処をどう直せと言った具体的なアドバイスが出来るでしょう。
5
+ 今のプログラムを書いてもらえば、何処をどう直せと言った具体的なアドバイスが出来るでしょう。
6
+
7
+ #追記を受けて
8
+ `printf`の`%f`は、「小数点以下6桁まで表示しろ」という指示です。
9
+ `%.8f`で、「小数点以下8桁まで表示しろ」という意味になります(ピリオドを忘れずに)。