कुछ यूनिट परीक्षण कोड जो मैं लिख रहा हूं, के हिस्से के रूप में, मैंने निम्न कार्य लिखा है। इसका उद्देश्य यह निर्धारित करना है कि 'ए' को 'बी' में गोल किया जा सकता है, भले ही 'ए' या 'बी' कितना सटीक हो।पायथन: सामान्य मामले में बी को गोल किया जा सकता है
def couldRoundTo(a,b):
"""Can you round a to some number of digits, such that it equals b?"""
roundEnd = len(str(b))
if a == b:
return True
for x in range(0,roundEnd):
if round(a,x) == b:
return True
return False
यहाँ समारोह से कुछ उत्पादन है:
>>> couldRoundTo(3.934567892987, 3.9)
True
>>> couldRoundTo(3.934567892987, 3.3)
False
>>> couldRoundTo(3.934567892987, 3.93)
True
>>> couldRoundTo(3.934567892987, 3.94)
False
जहां तक मेरा बता सकते हैं, यह काम करता है। हालांकि, मुझे इस पर भरोसा करने से डर है कि मुझे फ़्लोटिंग पॉइंट सटीकता से संबंधित मुद्दों का सही समझ नहीं है। क्या कोई मुझे बता सकता है कि क्या यह इस कार्य को लागू करने का एक उचित तरीका है? यदि नहीं, तो मैं इसे कैसे सुधार सकता हूं?
मुझे एहसास हुआ कि यह कहीं भी लागू किया गया था। मैं इसे स्वीकार कर रहा हूं क्योंकि क्वांटिज़ ठीक वही करता है जो मैं ढूंढ रहा हूं। धन्यवाद। – Wilduck