সবচেয়ে ভালো উপায় একটি রূপান্তর করতে কি double
একটি থেকে int
? একটি castালাই ব্যবহার করা উচিত?
etc.
:)
সবচেয়ে ভালো উপায় একটি রূপান্তর করতে কি double
একটি থেকে int
? একটি castালাই ব্যবহার করা উচিত?
etc.
:)
উত্তর:
আপনি যদি একটি ডিফল্ট ছাঁটাই-শূন্যের দিকে আচরণ চান তবে আপনি একটি কাস্ট ব্যবহার করতে পারেন। অন্যথা, আপনি ব্যবহার করতে চাইতে পারেন Math.Ceiling
, Math.Round
, Math.Floor
ইত্যাদি - যদিও আপনি এখনও পরে একটি ঢালাই করতে হবে।
ভুলে যাবেন না যে এর পরিসীমা এর ব্যাপ্তির int
চেয়ে অনেক ছোট double
। থেকে একটি ঢালাই double
করার int
যদি মান পরিসীমা বাইরে একটি ব্যতিক্রম নিক্ষেপ করা হবে না int
একটি কল যেহেতু, একটি অবারিত প্রেক্ষাপটে Convert.ToInt32(double)
ইচ্ছা। Theালাইয়ের ফলাফল (একটি চেক না হওয়া প্রসঙ্গে) স্পষ্টভাবে অনির্ধারিত হয় যদি মানটি সীমার বাইরে থাকে।
int
আপনি 32 বা 64 বিট মেশিন ব্যবহার করছেন তা নির্বিশেষে একটি এর আকার সর্বদা 32 বিট থাকে।
intVal = System.Convert.ToInt32(System.Math.Floor(dblVal));
using System;
ফাইলটির শীর্ষে থাকতেন , যে মুহুর্তে এটি ঠিক হতে পারেintVal = Convert.ToInt32(Math.Floor(dblVal));
using
নির্দেশিকা সম্পর্কে আরও ভাল সমাধানটি শিখাই।
আপনি যদি কাস্ট ব্যবহার করেন, অর্থাৎ, (int)SomeDouble
আপনি ভগ্নাংশটি কেটে ফেলবেন। এটি হ'ল SomeDouble
4.9999 হলে ফলাফলটি 4 হবে, 5 নয় int আপনি যদি গোলটি ব্যবহার করতে চানMath.Round
হ্যাঁ, কেন না?
double someDouble = 12323.2;
int someInt = (int)someDouble;
Convert
ক্লাস ব্যবহার করে খুব ভাল কাজ করে।
int someOtherInt = Convert.ToInt32(someDouble);
Convert.ToInt32
রূপান্তর করার সেরা উপায়
এখানে একটি সম্পূর্ণ উদাহরণ
class Example
{
public static void Main()
{
double x, y;
int i;
x = 10.0;
y = 3.0;
// cast double to int, fractional component lost (Line to be replaced)
i = (int) (x / y);
Console.WriteLine("Integer outcome of x / y: " + i);
}
}
আপনি যদি সংখ্যাটি কাছাকাছি সংখ্যার কাছাকাছি করতে চান তবে নিম্নলিখিতটি করুন:
i = (int) Math.Round(x / y); // Line replaced
আমার উপায়গুলি হ'ল:
- Convert.ToInt32(double_value)
- (int)double_value
- Int32.Parse(double_value.ToString());
double_value = 0.1