ホームページ  >  記事  >  バックエンド開発  >  sprintf が小数をインターセプトする問題について

sprintf が小数をインターセプトする問題について

WBOY
WBOYオリジナル
2016-10-23 00:12:482286ブラウズ

質問: 小数点第1位を保持し、四捨五入せず、整数の場合は0を埋めてください

使っているという人も多いですsprintf('%.1f',$str);,但是取出来的结果还是有问题,
最后用这种方法解决:echo sprintf('%.1f', floor($str));

リーリー

丸めたくないと言いましたよね?四捨五入するときに、5 は四捨五入されず、6 だけが四捨五入されるのはなぜですか
、他の関数number_format($str)は 5 で四捨五入されるのはなぜですか。

返信内容:

質問: 小数点第1位を保持し、四捨五入せず、整数の場合は0を埋めてください

使っているという人も多いですsprintf('%.1f',$str);,但是取出来的结果还是有问题,
最后用这种方法解决:echo sprintf('%.1f', floor($str));

リーリー

丸めたくないと言いましたよね?四捨五入するときに、5 は四捨五入されず、6 だけが四捨五入されるのはなぜですか
、他の関数number_format($str)は 5 で四捨五入されるのはなぜですか。

自分で試してみたところ、浮動小数点数の表現精度の問題だと思われます

リーリー

参考

Linux 浮動小数点数が四捨五入されるか四捨五入されるか (浮動小数点数の表現に応じて)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。