PDA

View Full Version : جدا کردن قسمت صحیح یک عدد اعشاری



saed2006
سه شنبه 04 اسفند 1388, 12:27 عصر
میخوام قسمت صحیح یک عدد اعشاری رو جدا کنم
تابع floor یا round به دردم نخورد
چی کار کنم

simul8or
سه شنبه 04 اسفند 1388, 12:37 عصر
میخوام قسمت صحیح یک عدد اعشاری رو جدا کنمتخصص من در C#‎‎‎‎ نیست ولی در حالت کلی با انتصاب عدد اعشاری به عدد int مقدار اعشار خود به خود حذف میشود(Casting):


float x=25.96;
int a=int(x);//a=25
کار دیگری که می توان انجام داد به این صورت است:


float x=47.963;
float y=x % 1;//x MOD 1 => y=0.963
که x-y جواب را می دهد.

saed2006
سه شنبه 04 اسفند 1388, 12:46 عصر
public int Floor(double num)
{
return Convert.ToInt32(Convert.ToString(num).Split(new char[] { '.' })[0]);
}

ostadi
سه شنبه 04 اسفند 1388, 15:41 عصر
string convert_var;
convert_var="";
string var1 = textbox1.Text;
string[] count = var1.Split('.');
for (int j = 0; j < count; j++)
{
convert_var += count[j];
}
Int64 txt2 = Convert.ToInt64(convert_var);

mehdi.mousavi
سه شنبه 04 اسفند 1388, 16:20 عصر
public int Floor(double num)
{
return Convert.ToInt32(Convert.ToString(num).Split(new char[] { '.' })[0]);
}



سلام.
نیازی به اینهمه Instruction نیست. برای تبدیل double به int کافیه عدد مورد نظر رو به int کست کنید:


double d = 3.5;
int n = (int)d;


اینطوری n برابر 3 میشه.
موفق باشید.

Warrior
سه شنبه 04 اسفند 1388, 18:34 عصر
اگر خواستیم قسمت اعشار را جدا کنیم(راهی به غیر از کم کردن عدد صحیح از عدد اصلی) باید چه کار کنیم؟

ممنونم

mehdi.mousavi
سه شنبه 04 اسفند 1388, 18:40 عصر
اگر خواستیم قسمت اعشار را جدا کنیم(راهی به غیر از کم کردن عدد صحیح از عدد اصلی) باید چه کار کنیم؟ ممنونم

چرا "غیر از کم کردن"؟ اینکه سریعترین و بهترین روش برای بدست آوردن قسمت اعشار هست.

Salar Ashgi
سه شنبه 04 اسفند 1388, 18:57 عصر
چراFloor به کارت نیومد ؟ لازم نیست این همه انرژی مصرف کنیم ، بصورت خیلی ساده :



double a = 3.25;
int x = (int)(Math.Floor(a));

mehdi.mousavi
چهارشنبه 05 اسفند 1388, 10:32 صبح
چراFloor به کارت نیومد ؟ لازم نیست این همه انرژی مصرف کنیم ، بصورت خیلی ساده :



double a = 3.25;
int x = (int)(Math.Floor(a));


سلام.
اینجا نیازی به استفاده از Floor نیست. جای کدی که نوشتید، بهتره همونطور که قبلا گفتم، a رو فقط به integer کست کنید و در x بریزید. (اینطوری انرژی کمتری هم صرف می کنید، اگر نگران انرژی هستید :چشمک:).

موفق باشید.

saed2006
چهارشنبه 05 اسفند 1388, 11:09 صبح
Floor عدد منفی رو گرد به پایین میکنه
بنابر این روی قسمت صحیح اعداد منفی هم تاثیر میزاره
-5.3 باید بشه -5
5.3 5
6.99 6
-6.99 -6
..

SMRAH1
چهارشنبه 05 اسفند 1388, 11:41 صبح
سلام
1) به جای Floor از Truncate استفاده کن.
2) روش جناب موسوی خیلی ساده تره!
موفق باشید

mrshcom
شنبه 08 اسفند 1388, 11:18 صبح
سلام
اينم كدي ساده براي بدست آوردن قسمت صحيح يك عدد اعشاري

decimal d = 123.234M;
decimal i = Math.Truncate(d)

aliramazani
پنج شنبه 06 تیر 1392, 22:19 عصر
برای جدا کردن اعشار از چی استفاده کنیم؟

mehdi.mousavi
سه شنبه 11 تیر 1392, 08:11 صبح
برای جدا کردن اعشار از چی استفاده کنیم؟

سلام.
کافیه عدد اصلی رو از قسمت صحیح عدد کم کنیم:


double d = 3.5;
double f = d - (int)d;

در مثال فوق f برابر 0.5 خواهد بود.

موفق باشید.