質問: json_decode($response, true); //Jsonデータを生出力(データ確認用) print_r($json_decode); //Jsonデータをすべて出力 foreach($json_decode as $key => $val ){ printf($json_decode[$key][currency_code].": %f ",PHP_EOL . $json_decode[$key]["amount"]); } //currency_code 通貨名 //available 利用可能数 //amount 所持数 ```
回答: PHPで扱える数値の有効数値は約14桁あるので、小数点以下6桁で丸められると言う事は、 「小数点以下6桁まで表示しろ」というプログラムを書いたからだと思います。 「小数点以下8桁まで表示しろ」というプログラムに修正したらいいかと思います。 今のプログラムを書いてもらえば、何処をどう直せと言った具体的なアドバイスが出来るでしょう。 追記を受けて ====== `printf`の`%f`は、「小数点以下6桁まで表示しろ」という指示です。 `%.8f`で、「小数点以下8桁まで表示しろ」という意味になります(ピリオドを忘れずに)。 通貨ごとに変える ======== > > 通貨により小数点以下の桁数がバラバラです。 > > > を見落としていました。 という事であれば、個別に精度を指定するしかないですね。 あと、変数`$val`を活用しましょう。`$json_decode[$key]`が入っています。 ``` $format = Array("YEN"=>": %.0f ", "BTC"=>": %.8f ", ・・・・・・); foreach($json_decode as $key => $val ){ printf($val["currency_code"].$format($val["currency_code"]).PHP_EOL , $val["amount"]); } ```