में समारोह मैं थोड़ा सी में round()
समारोहका उपयोग दौर() ग
सबसे पहले लेकर संदेह में हूँ, आदमी कहते हैं:
SYNOPSIS
#include <math.h>
double round(double x);
RETURN VALUE
These functions return the rounded integer value.
If x is integral, +0, -0, NaN, or infinite, x itself is returned.
वापसी मान एक double
/float
या है एक int
?
दूसरे स्थान पर, मैंने एक ऐसा फ़ंक्शन बनाया है जो पहले राउंड करता है, फिर int में रहता है। मेरे कोड मैं लिए एक मतलब के रूप में उपयोग पर लैटर युगल
int tointn(double in,int n)
{
int i = 0;
i = (int)round(in*pow(10,n));
return i;
}
इस समारोह की तुलना जाहिरा तौर पर मेरे परीक्षण के दौरान स्थिर नहीं है। क्या यहां अनावश्यकता है? खैर ... मैं केवल एक जवाब के लिए नहीं देख रहा हूं, लेकिन इस विषय पर एक बेहतर समझ है।
वापसी मान हमेशा एक 'double' या एक' float' है:
यहाँ आदमी पेज से एक अंश जो तरीके के बारे में राउंडिंग किया जाएगा है। यदि आपके द्वारा इनपुट की गई संख्या '42.000' की तरह कुछ है तो इसे अभिन्न माना जाता है, भले ही आप 'डबल' या 'फ्लोट' पास करते हैं। "स्थिर नहीं है" से आपका क्या मतलब है? यदि आप 'डबल' की तुलना कर रहे हैं तो आपको फ्लोटिंग पॉइंट मानों के लिए मशीन ईपीएसलॉन पर भी ध्यान देना चाहिए। – meetaig
आप उस आदमी के पहले भाग से देख सकते हैं जिसे आप पोस्ट करते हैं कि 'राउंड()' फ़ंक्शन 'डबल' देता है। – Toby
जब आप बड़े होते हैं तो आप 'पाउ (10, एन)' की सटीकता पर भरोसा नहीं कर सकते हैं। आपके परीक्षणों में 'n' का सामान्य/अधिकतम मूल्य क्या है? –