printf 形式の出力に関する質問

WBOY
リリース: 2016-06-13 12:18:41
オリジナル
872 人が閲覧しました

printf 形式の出力の問題について
$a = 123.666;
printf("%.2f", $a);
$b = 10.85;
print("
"); 🎜>printf("%.1f",$b);


結果が
123.67
10.8
前者は四捨五入されているのに、後者は四捨五入されていないのはなぜですか?

------ソリューションのアイデア----------------------printf("%.1f %. 16f", 10.85, 10.85); //10.8 10.8499999999999996
浮動小数点数 10.85 は、実際には 10.84999999999999996 としてマシンに保存されます
したがって、小数点第 1 位に変換すると、10.8

実はこれについては心配する必要はありません。浮動小数点数の表現と精度については、コンピュータ基礎コースですでに学習しています。
高精度の演算が必要な場合は、php が提供する BC および gml 拡張機能を使用してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート