मेरे पास यह कोड है;परिवर्तनीय अभिनय अजीब (जैसे फ़्लोटिंग पॉइंट)
static int test = 100;
static int Test
{
get
{
return (int)(test * 0.01f);
}
}
उत्पादन होता है: 0
लेकिन इस कोड अलग रिटर्न
static int test = 100;
static int Test
{
get
{
var y = (test * 0.01f);
return (int)y;
}
}
उत्पादन: 1
इसके अलावा, मैं इस कोड
static int test = 100;
static int Test
{
get
{
return (int)(100 * 0.01f);
}
}
उत्पादन है: 1
मैं आईएल आउटपुट देखता हूं और मुझे समझ में नहीं आता कि क्यों सी # संकलन समय और आउटपुट पर इस गणितीय ऑपरेशन को अलग कर रहा है?
इन दो कोडों में अंतर क्या है? मैंने वैरिएबल परिणाम का उपयोग करने का फैसला क्यों बदल रहा है?
आप मूल्यों की जांच कैसे करते हैं? – dotctor
संभावित डुप्लिकेट [क्या फ़्लोटिंग पॉइंट गणित टूटा हुआ है?] (Http://stackoverflow.com/questions/588004/is-floating-point-math-broken) – Liam
मैं एक एसओ के आसपास देख रहा था, लेकिन मुझे नहीं मिला सटीक उत्तर हालांकि, यह उत्तर कुछ चीजों को स्पष्ट कर सकता है: http://stackoverflow.com/a/15117741/2594485 –