<< 問い合わせフォームでの選択リスト 質問一覧 文中にURLがあればそれ以降を削除する >>

  • 0P
小数0表示について

MYSQLのデータから数値を画面に表示しようと思っているんですが、小数表示で悩んでいます。
MYSQLのデータはfloat型で32が入力されています。
元はCSVから32.0というデータを取り込んだんですがselect文で表示すると32と表示されます。
画面には32.0と表示したいので

  1. <td><?echo printf("%.1f",$zi3F[1][0]);?></td>

$zi3f[1][0]にはSQL文の結果が入力されていますが
画面には「32.04」と表示されます。

「%.1F」で小数第1位まで表示できると思っていたのですが第2位まで表示されます。
32.0と表示したいのですがどうすればよいでしょうか?
分かる方教えてください。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。

Q小数0表示について vodka  [03月06日 23時38分] 
┗Re:小数0表示について NurseAngel  [03月07日 03時59分] 
  ┗Re:Re:小数0表示について vodka  [03月07日 10時37分] 
    ┗Re:Re:Re:小数0表示について shimix  [03月08日 08時58分] 
      ┗Re:Re:Re:Re:小数0表示について vodka  [03月08日 12時23分] 

コメント一覧

並び替え( ツリー順 / 投稿順[降順] / 投稿順[昇順]

Re:小数0表示について

どちらでも。

echo sprintf("%.1f",$zi3F[1][0]);
printf("%.1f",$zi3F[1][0]);

Re:Re:小数0表示について

コメントありがとうございます。
今までは下記のように表示していたんですが、
  1. echo sprintf("%.1f",$zi3F[1][0]);

下記に変更することによって小数点第1位の0が正しく表示されました。
  1. printf("%.1f",$zi3F[1][0]);
無事解決することが出来ました。
ありがとうございます。

Re:Re:Re:小数0表示について

>下記に変更することによって小数点第1位の0が正しく表示されました。

たしかに、最初に提示されていた『echo printf』だと、printfでの表示+echoprintfの戻り値(文字数)を表示なので'32.0'+'4'になるのは理解出来るのですが、『echo sprintf』でもダメだったというのが再現出来ません。どうダメだったのか(どういう表示になっていたのか)を書いて頂けるとありがたいです。

  1. <?php
  2. $a = 32.0123;
  3.  
  4. echo printf("%.1f",$a)// 32.04(32.0と4)
  5. print "<hr />";
  6. echo sprintf("%.1f",$a)// 32.0
  7. print "<hr />";
  8. printf("%.1f",$a)// 32.0
  9. ?>

Re:Re:Re:Re:小数0表示について

すみません間違えていました。
MYSQLに32.0というデータを取り込みました。
しかしコマンドプロンプト上でselect文で表示しても32としか表示されませんでした。
ブラウザには32.0と表示したいので表示関数のechoと書式関数?のprintfを組み合わせて、

  1. echo printf("%.1f",変数);

とプログラムすると32.04と表示されるのでアドバイスにしたがって

  1. printf("%.1f",変数);

とプログラムすると32.0と表示されました。

前回の自分の投稿で

  1. echo sprintf("%.1f",変数);
から変更してと書きましたが、正しくは
  1. echo printf("%.1f",変数);
から変更しての間違いでした。
申し訳ございませんでした。
問い合わせフォームでの選択リスト 質問一覧 文中にURLがあればそれ以降を削除する