ホームページ > バックエンド開発 > PHPチュートリアル > 余り1法による文字化け計算に関する問題

余り1法による文字化け計算に関する問題

WBOY
リリース: 2016-06-13 13:45:48
オリジナル
1117 人が閲覧しました

文字化けを計算するための残差メソッド。
ゼロが4つあると文字化けが発生します。
たとえば、0.01*0.007=7.0E-5 (コード化け)
は 0.00007 に等しい必要があります。

なぜphpでこのようなエラーが発生するのかわかりません。

注: 小数点は元の位置に保持する必要があります。諦めないでください。どうやって解決すればいいのでしょうか?

-----解決策--------------------------------
1. これは文字化けではなく、科学表記法です。
2.round() 関数は小数点以下の桁数を指定できます
$x = 0.0000722;
$s =round($x,5);
echo $s;
------解決策---------
1.sprintf:

PHPコード
<?php
$x = 0.01*0.007;
sprintf("%.7f",$x);
?>
<br><font color="#e78608">------解決策---------</font><br>
ログイン後にコピー
PHP コード

echo bcmul(0.01,0.007,5);//0.00007
<br><font color="#e78608">------解決策---------</font><br>学習
<br><font color="#e78608">------解決策---------</font><br>よし、嫌なことをしてみよう<br> <br>$s=0.01*0.007;<br>echonumber_format($s,5,'.','');
<br><font color="#e78608">------解決策---------</font><br>
ログイン後にコピー
話し合う

$s =number_format($x, 6, '.', ' ');
結果は 0.000070 になります

次の 0 を削除して 0.00007 にする方法

------解決策---------
話し合う
ゼロが4つあると文字化けが発生します。
たとえば、0.01*0.007=7.0E-5 (コード化け)
は 0.00007 に等しい必要があります。

なぜphpでこのようなエラーが発生するのかわかりません。

注: 小数点は元の位置に保持する必要があります。諦めないでください。どうやって解決すればいいのでしょうか?

-----解決策---------
うーん。最後に 0 を追加しない場合は、次のようにすることができます:

PHP コード
<?php
 $s = 0.01*0.00123;
 $k = sprintf("%.15f",$s); //小数点以下15桁まで指定
 $result = rtrim($k,"0");//末尾の0を削除します
 $result をエコーし​​ます。
?><div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート