আমি কীভাবে স্ট্রিং থেকে ডেটা সি-তে দীর্ঘ রূপান্তর করতে পারি?
আমার কাছে ডেটা আছে
String strValue[i] ="1100.25";
এখন আমি এটি ভিতরে চান
long l1;
আমি কীভাবে স্ট্রিং থেকে ডেটা সি-তে দীর্ঘ রূপান্তর করতে পারি?
আমার কাছে ডেটা আছে
String strValue[i] ="1100.25";
এখন আমি এটি ভিতরে চান
long l1;
উত্তর:
এই উত্তরটি আর কাজ করে না, এবং আমি এখানে বর্ণিত অন্যান্য উত্তরগুলি (নীচে দেখুন) এর চেয়ে ভাল কিছু নিয়ে আসতে পারছি না। তাদের পর্যালোচনা করুন এবং ভোট দিন।
Convert.ToInt64("1100.25")
এমএসডিএন থেকে পদ্ধতি স্বাক্ষর:
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;
}
এটি আরও উন্নত করা যেতে পারে: