पर मॉड (%) ऑपरेटर मुझे एक अजीब बग को हल करने में मदद की ज़रूरत है - जब मैं x86 पर mod (%) ऑपरेटर का उपयोग करता हूं तो सभी अच्छे, पर, लेकिन x64 पर मुझे कभी-कभी NaN शेष के रूप में मिलता है (यह आमतौर पर कोण के साथ होता है = 0)। मैं अपने कोड के बाहर उस बग को पुन: उत्पन्न करने में कामयाब रहा, लेकिन केवल कोण = डबल के साथ। एप्सिलॉन (मेरे कोड पर यह कोण = 0 के साथ भी होता है)।x86 बनाम x64
class Program
{
public const double M_PI = 3.14159265358979323846;
static void Main(string[] args)
{
double m_2PI = (2 * M_PI);
double m_Angle = double.Epsilon;
double mod = (m_Angle % m_2PI);
//x86 mod = 4.94065645841247E-324
//x64 mod = NaN
if (double.IsNaN(mod))
Debug.Write(mod);
}
}
सादर, शे
इतना यकीन नहीं है कि यह एक बग है - x86 और x64 फ़्लोटिंग पॉइंट अलग-अलग परिणाम लौटा सकता है। आपको बस इसके आसपास काम करने की आवश्यकता हो सकती है। –
छोटी युक्ति: आप इसे अपने स्वयं के स्थिर –