問題タブ [bcmath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1210 参照

php - bcmath が私の計算に対して間違った答えを出しているようです

何が間違っているのかわかりませんが、この計算は

「83.59999999999999999670」をエコーし​​ますが、他のすべての電卓は83.6を返します。

これを解決する方法はありますか、それとも bcmath の欠陥ですか?

0 投票する
3 に答える
3034 参照

php - bcpowとpowの違いは何ですか?

pow()の代わりにbcpow()を使用する必要があるかどうか、およびその理由を誰かに説明してもらえますか?

phpのすべてのインストールでbcmathが有効になっているわけではないことを理解しています。したがって、オープンソースプロジェクトを作成し、依存関係/要件をできるだけ少なくしたい場合は、コードでpow()を使用します。

しかし、bcpow()よりもpow()を使用することの欠点は何ですか?

0 投票する
3 に答える
703 参照

php - PHPPseudoCryptクラスを復号化しようとしています

http://blog.kevburnsjr.com/php-unique-hashにリストされているPseudoCryptスクリプトを逆にする方法を作成しようとしています。このコードでは、次の式があります。

$numを除くすべての変数を取得できました。たとえば、次の番号を取ります。

その場合、方程式は次のようになります。

答えは1でなければなりません。しかし、私は方程式=$numを作る方法を決定していません。URLで作成されたハッシュを使用してから、ハッシュを復号化してデータベースでクエリを実行したいと考えています。

編集:複製の余地がほとんどない一意のハッシュを作成するためのより良い方法がある場合は、代わりにそれを受け入れます。

編集:どういうわけか私は$decに間違った値を入れました。編集:機能するコードで更新されたブログ投稿。

0 投票する
4 に答える
1450 参照

php - PHPのbcmul()スケールで混乱している

なぜこれが出力され、出力87.5されないの 87.50ですか?

0 投票する
1 に答える
898 参照

php - bcmathを使用して減算が正しく機能しないのはなぜですか?

私が持っているとしましょう

0.33333333333333333333を返します

私が持っている場合

0.33323333333333333332を返します

私が持っている場合

0.33333333333333331483を返します

私が持っている場合

0.33323333333333331482を返します

では、なぜ正しく減算できないのでしょうか。浮動小数点を使用したものなのでしょうか。ただし、bcdiv(​​1、3、20)だけの場合は正常に機能します

0 投票する
2 に答える
5044 参照

php - PHP での任意精度の計算

現在、PHP で任意精度の数値を扱う方法を見つけようとしています。したがって、私の最初の質問は、正確には任意精度の数学とは何かということになると思います。私は良い定義のためにグーグルを試しましたが、何らかの理由で誰もそれを十分に簡単な言葉で表現することはできません.

次に、PHP の BCMath ライブラリと GMP ライブラリの違いは何ですか? GMP の API は「より新しい」という主張を聞いたことがありますが、そうではありません。1つが良いですか?

そして私の最後の質問は、BCMath/GMP がどのような種類の数値を取るかということです。明らかに、文字列形式の通常の整数 (例: "5.34") を使用しますが、BCMath 関数が通常の整数を表すオクテット文字列 (例: "\x12\x23\x45\x67") で直接使用されている実装を見てきました。 「bigint」と呼ばれていると聞いたことがありますが、Google からは何も得られませんでした。

0 投票する
1 に答える
654 参照

php - BCMath の使用エラー - 未定義のメソッド PEAR_Error::int2bin() の呼び出し

BCMath の使用中にこのエラーが発生しました -

致命的なエラー: login.php の 23 行目の未定義メソッド PEAR_Error::int2bin() の呼び出し

Crypt_RSA と BCMath を一緒に使用しようとしています。ここに私のコードがあります -

0 投票する
1 に答える
1236 参照

php - 会計システム - MySQL と PHP の精度

PHP と MySQL を使用して会計システムのようなものを構築しています。私のデータベースにはDECIMAL (11,2)、通貨の列と、通貨をDECIMAL使用する操作で使用される他のすべての値 (適用されるパーセンテージなど) の列があります。私は以前にそのようなことをプログラムしたことがないので、正しいことをしているかどうかわかりません。

データベースで正しいレベルの精度を使用していますか?

PHP 側:

後でデータベースに保存される可能性のある値に対して BC Math 関数を使用する必要がありますか?

,また、金額の値を小数点.として、および千単位の区切り記号としてフォーマットする必要があります。私は知っていてnumber_format、最近発見money_formatしましたが、マニュアルには両方ともフロートで動作すると書かれています。

表示される値、または CSV または Excel にエクスポートされる値にnumber_formatまたはを使用できますか?money_format

0 投票する
1 に答える
1360 参照

php - 浮動小数点累乗の計算 (PHP/BCMath)

私はbcmath拡張機能のラッパーを書いていますが、バグ #10116bcpow()特に厄介です - $right_operand( $exp) を (ネイティブ PHP、任意の長さではない) 整数にキャストするため、平方根 (またはその他の任意の長さ) を計算しようとすると正しい結果ではなく、1常に最終的に得られる数の )より大きい根。1

数値の n 乗根を計算できるアルゴリズムを探し始めたところ、この答えはかなりしっかりしているように見えました。実際にWolframAlpha を使用して数式を拡張したところ、精度を維持しながら速度を約 5% 向上させることができました結果の。

これは、私の BCMath 実装とその制限を模倣した純粋な PHP 実装です。

上記 、整数が得られない場合を除い1 / fmod($exp, 1)てうまく機能するようです。たとえば、$expisの場合0.123456、その逆は となり、と8.10005の結果は少し異なります ( demo ):pow()_pow()

  • pow(2, 0.123456)=1.0893412745953
  • _pow(2, 0.123456)=1.0905077326653
  • _pow(2, 1 / 8)= _pow(2, 0.125)=1.0905077326653

「手動」の指数計算を使用して同じレベルの精度を達成するにはどうすればよいですか?

0 投票する
0 に答える
191 参照

php - PHPでBC Mathで無限大を使用するには?

BC Math で無限大を使用する方法が見つかりません。次のようなものを考えてみましょう:

$divider が 0 になるまでは問題ありません。したがって、例外を作成します。

問題は、将来の計算で $result が「0」として計算されることです。$result を任意の大きな数値として設定できますが、それは正確な計算の概念を破壊します。また、正確な計算を行うために大きすぎる数値を入力すると、速度が大幅に低下します。

これを克服する方法はありますか?