GNU Cライブラリの機能はdrem
(別名remainder
)です。Google App Engine Python 2.7ランタイムで、GNU Cライブラリのdrem/remainder関数をシミュレートする方法はありますか?
Google App Engine Python 2.7ランタイムでサポートされているmodulesを使用してこの機能をシミュレートするにはどうすればよいですか? drem
ためGNU manualから
:
これらの機能は、それらが整数に最も近い整数に代えてゼロに向かって内部商nを丸めることを除い
fmod
ようです。たとえば、drem(6.5,2.3)は-0.4を返します。これは6.5から6.9です。fmod
ためGNU manualから
:
これらの機能は、分母によって分子の除算の剰余を計算します。具体的には、戻り値はnumerator-n *分母であり、nは分子を分母で割った商であり、ゼロに向かって整数に丸められます。したがって、fmod(6.5,2.3)は1.9を返し、6.5から4.6を引いた値になります。
def drem(x, y): n = round(x/y) return x - n * y
しかしパイソン、
drem(1.0, 2.0) == -1.0
で及びCdrem(1.0, 2.0) == 1.0
と次のPythonコードが動作するはずドキュメントを読ん
。 Pythonはを返します。とCはを返します。。これはほぼ確実に丸め浮動小数点の内部的な違いです。限り、私は両方の機能は、パラメータ2 * x != y
どこに同じことを行うことができます。
私のPython drem
の機能は、C言語のものと同じにすることができますか?
Google App Engineで利用できる[サポートされているPythonモジュール](https://developers.google.com/appengine/kb/libraries)のみを使用できることを付け加えておきます。 – Dan
'round()'の代わりに 'numpy.round()'が私の例ではうまくいくようですが、これにエッジケースがあるかどうかを知っていただければ幸いです。 – Dan
私は**ラピッと**そのラウンド関数のためだけに依存していないので、質問はまだ立っています。 – Dan