पर पार्स करने का प्रयास करते समय काम नहीं कर रहा है, मैं स्ट्रिंग को पार्स करने का प्रयास कर रहा हूं जिसमें दशमलव हो सकता है। मैं Int32.TryParse
का उपयोग कर रहा हूं लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। यहाँTryParse एक दशमलव संख्या को एक int
private NumberStyles styles = NumberStyles.Number;
private CultureInfo culture = CultureInfo.CurrentCulture;
public int? ParseInt(string node)
{
int number;
if (Int32.TryParse(node, styles, culture.NumberFormat, out number))
{
return number;
}
return null;
}
और है मेरी इकाई परीक्षण है कि
[Fact]
public void TestParseIntWithDecimal()
{
string provided = "28.789";
int expected = 28;
int? actual = _parser.ParseInt(provided);
Assert.NotNull(actual);
Assert.Equal(expected, actual);
}
जब मैं अपने इकाई परीक्षण चलाने के लिए, null
ParseInt
से लौट आता है और विफल हो रहा है:
यहाँ मेरी समारोह जहाँ मैं पार्स करने के लिए कोशिश है मुझे समझ में नहीं आता क्यों। मैंने सोचा कि TryParse
दशमलव संख्या को पूर्णांक संख्याओं में पार्स कर सकता है।
आप पहले नंबर को भी गोल कर सकते हैं, इसलिए यह एक पूर्ण संख्या है ... –
लड़का, यह सवाल कैसे होना चाहिए। सरल, काम करने वाले कोड के साथ परीक्षण किया जा सकता है। अच्छा लगा। – Jonesopolis
मेरे अब-हटाए गए उत्तर में मैंने 'AllowThousands' को' AllowDecimalPoint' 'के साथ भ्रमित कर दिया, जहां पूर्व अल्पविराम (संस्कृति) के आधार पर' int.Parse() 'पार्स संख्याओं को दे सकता है। कुछ संस्कृतियों में अल्पविराम दशमलव विभाजक है। यह _does_ काम करता है यदि आंशिक अंकों में केवल शून्य होते हैं (जैसा कि [दस्तावेज] (https://msdn.microsoft.com/en-us/library/zf50za27 (v = vs.110) .aspx)): http: // ideone .com/stQ9GY। – CodeCaster