これは一般的な質問のようですが、BCMath を使用して PHP で大きな高精度浮動小数点値を基数変換する方法について具体的に学ぶのに非常に苦労しています。
私は次のようなものをベース変換しようとしています
1234.5678900000
に
4D2.91613D31B
これどうやってするの?
私はbase-10→base-16が欲しいだけですが、任意のbase-floatの変換はおそらく他の人にとっても最も有用な答えになるでしょう.
PHPで巨大な整数を16進数に変換するには? BC を含みますが、整数のみです。
https://www.exploringbinary.com/base-conversion-in-php-using-bcmath/は float を探索しますが、10 進 <-> バイナリのコンテキストでのみです。(他のベースのコードを拡張するのは簡単であり、(前のポイントのコードを使用して) おそらくそうですが、到達する結果の正確さを推論する方法がわかりません。)
bcmath を使用した高速な任意精度の対数も float ベースですが、高精度の再実装のコンテキストで使用されます
log()
。(ただし、BC が PHP 独自の pow() をばかげて使用し、精度を失う方法についてのメモとともに、基数の変換についての言及があります。)
私が見つけた他の結果は、PHP 自身のフロート型強制について話しているだけであり、BC とはまったく関係がありません。