मैं स्ट्रिंग को लंबे समय से C # में डेटा कैसे बदल सकता हूं?
मेरे पास डेटा है
String strValue[i] ="1100.25";
अब में चाहता हूँ
long l1;
मैं स्ट्रिंग को लंबे समय से C # में डेटा कैसे बदल सकता हूं?
मेरे पास डेटा है
String strValue[i] ="1100.25";
अब में चाहता हूँ
long l1;
जवाबों:
यह उत्तर अब काम नहीं करता है, और मैं कुछ भी बेहतर नहीं कर सकता तो अन्य उत्तर (नीचे देखें) यहां सूचीबद्ध हैं। कृपया उनकी समीक्षा करें और उन्हें वोट दें।
Convert.ToInt64("1100.25")
MSDN से विधि हस्ताक्षर:
public static long ToInt64(
string value
)
यदि आप उस संख्या का पूर्णांक भाग प्राप्त करना चाहते हैं, तो आपको पहले इसे एक अस्थायी संख्या में परिवर्तित करना होगा, फिर लंबे समय तक डालना होगा।
long l1 = (long)Convert.ToDouble("1100.25");
आप Math
वर्ग का उपयोग संख्या को गोल करने के लिए कर सकते हैं, जैसा कि आप चाहते हैं, या सिर्फ छोटा ...
FormatException
यदि आप इसे निर्दिष्ट इनपुट पर चलाते हैं तो यह आपको देने वाला है ।
तुम भी उपयोग कर सकते हैं long.TryParse
और long.Parse
।
long l1;
l1 = long.Parse("1100.25");
//or
long.TryParse("1100.25", out l1);
http://msdn.microsoft.com/en-us/library/system.convert.aspx
l1 = Convert.ToInt64(strValue)
हालांकि आपने जो उदाहरण दिया है वह पूर्णांक नहीं है, इसलिए मुझे यकीन नहीं है कि आप इसे लंबे समय तक क्यों चाहते हैं।
दशमलव बिंदु के कारण आप इसे सीधे रूप में लंबे समय तक परिवर्तित नहीं कर पाएंगे।
String strValue[i] = "1100.25";
long l1 = Convert.ToInt64(Convert.ToDecimal(strValue));
उम्मीद है की यह मदद करेगा!
लंबे समय से आंतरिक रूप से System.Int64 के रूप में प्रतिनिधित्व किया जाता है जो 64-बिट हस्ताक्षरित पूर्णांक है। आपने "1100.25" जो मान लिया है वह वास्तव में दशमलव है और पूर्णांक नहीं है इसलिए इसे लंबे समय तक परिवर्तित नहीं किया जा सकता है।
आप उपयोग कर सकते हैं:
String strValue = "1100.25";
decimal lValue = Convert.ToDecimal(strValue);
इसे दशमलव मान में बदलने के लिए
long l1 = Convert.ToInt64(strValue);
इससे हो जाना चाहिए।
आप Int64.TryParse
मेथड का इस्तेमाल करके भी कर सकते हैं । यदि उनका कोई स्ट्रिंग मान है तो यह '0' लौटाएगा, लेकिन कोई त्रुटि उत्पन्न नहीं करेगा।
Int64 l1;
Int64.TryParse(strValue, out l1);
आप अपना स्वयं का रूपांतरण कार्य बना सकते हैं:
static long ToLong(string lNumber)
{
if (string.IsNullOrEmpty(lNumber))
throw new Exception("Not a number!");
char[] chars = lNumber.ToCharArray();
long result = 0;
bool isNegative = lNumber[0] == '-';
if (isNegative && lNumber.Length == 1)
throw new Exception("- Is not a number!");
for (int i = (isNegative ? 1:0); i < lNumber.Length; i++)
{
if (!Char.IsDigit(chars[i]))
{
if (chars[i] == '.' && i < lNumber.Length - 1 && Char.IsDigit(chars[i+1]))
{
var firstDigit = chars[i + 1] - 48;
return (isNegative ? -1L:1L) * (result + ((firstDigit < 5) ? 0L : 1L));
}
throw new InvalidCastException($" {lNumber} is not a valid number!");
}
result = result * 10 + ((long)chars[i] - 48L);
}
return (isNegative ? -1L:1L) * result;
}
इसे और बेहतर बनाया जा सकता है: