के साथ दो बार पार करने के लिए पार्स स्ट्रिंग्स मैं एक ऐसा फ़ंक्शन लिखने की कोशिश कर रहा हूं जो मूल रूप से तारों की सरणी में तारों की एक सरणी को परिवर्तित करता है जहां सरणी में सभी युगल दशमलव सेट की संख्या के लिए गोल होते हैं। सरणी में तार भी हो सकते हैं जो कि कोई डबल मान नहीं है।अल्पविराम और बिंदु
string[,] values = new string[1, 3];
values[0, 0] = "hello";
values[0, 1] = "0.123";
values[0, 2] = "0,123";
int decimalPlaces = 2;
double tmp;
string format = "F" + decimalPlaces.ToString();
IFormatProvider provider = CultureInfo.InvariantCulture;
for (int i = 0; i < values.GetLength(0); i++)
{
for (int j = 0; j < values.GetLength(1); j++)
{
if (double.TryParse(values[i, j], out tmp))
{
values[i, j] = tmp.ToString(format, provider);
}
}
}
Console.ReadLine();
परिणाम हो गया है: "हैलो", "0.12", "0.12" लेकिन यह है "हैलो", "123.00", "0.12" गलत तरीके से अल्पविराम व्यवहार करेगा। क्या किसी के पास इसके लिए एक सरल और कुशल समाधान है?
आपको पार्सिंग करते समय संस्कृति निर्दिष्ट करने की आवश्यकता है, अन्यथा यह केवल तभी काम करेगा जहां वर्तमान संस्कृति दशमलव बिंदु के रूप में "," का उपयोग करेगी। – hultqvist
दाएं। चेतावनी के लिए धन्यवाद। – mmdemirbas
मुझे पता है कि थ्रेड लंबे समय से मर चुका है, लेकिन मैं बेहतर प्रदर्शन के लिए 'प्रतिस्थापन (स्ट्रिंग, स्ट्रिंग)' प्रतिस्थापन (char, char) 'के साथ बदल दूंगा ..... – Unknown6656