GNU C Kitaplığı drem
(diğer adıyla remainder
) işlevine sahiptir.Google App Engine Python 2.7 çalışma zamanında GNU C Kütüphanesi drem/remainder işlevini nasıl taklit edebilirim?
Bu işlevi, yalnızca Google App Engine Python 2.7 çalışma zamanı tarafından desteklenen modules kullanarak nasıl simüle edebilirim? drem
için GNU manual itibaren
:
Bu işlevler onlar tam sayıya en yakın tam sayıya yerine sıfıra doğru iç bölüm n yuvarlamak dışında
fmod
gibidir. Örneğin, drem (6.5, 2.3), 6.5 eksi 6.9 olan -0.4'ü döndürür.fmod
için GNU manual kaynaktan
:
Bu işlevler payda ile pay bölünmesinden kalan hesaplamak. Spesifik olarak, dönüş değeri pay-n * paydasıdır, burada n payda tarafından paylaştırılmış payın bölücüsüdür, bir tamsayıya sıfıra yuvarlanır. Böylece, fmod (6.5, 2.3), 6.5 eksi 4.6 olan 1,9 değerini döndürür.
Aşağıdaki Python kodu çalışmalıdır belgeleri Okuma:
def drem(x, y):
n = round(x/y)
return x - n * y
Ancak Python, drem(1.0, 2.0) == -1.0
ile ve C drem(1.0, 2.0) == 1.0
ile. Not Python negatif bir döndürür ve C pozitif bir döndürür. Bu neredeyse yuvarlak yuvarlamalarda içsel bir farktır. Her iki işlev de, 2 * x != y
parametrelerinin nerede olduğunu aynı şekilde söyleyebildiğim kadarıyla.
Python drem
işlevimin C eşdeğeriyle aynı şekilde çalışmasını nasıl sağlayabilirim?
Ben sadece kullanabileceğiniz eklemek gerekir Google App Engine mevcut (https://developers.google.com/appengine/kb/libraries) [Python modülleri desteklenen]. – Dan
'numpy.round()' yerine 'round() 'örneğim için çalışıyor gibi görünüyor, ancak bununla ilgili herhangi bir kenar durumu olup olmadığını bilmek minnettar olurdum. – Dan
** Sadece "yuvarlak" işlevi için Numpy'ye bağımlı olmamayı ** isterim ki soru hala geçerli olur. – Dan