PDA

View Full Version : گرد کردن عدد



alimooghashang
پنج شنبه 01 مرداد 1388, 01:55 صبح
با سلام
جطوری عدد 12.34568 را به 12.34 گرد کنم؟
مرسی

amin_unique
پنج شنبه 01 مرداد 1388, 02:23 صبح
میتونی از این هم استفاده کنی
عدد رو تو یک تکست باکس بگذاری
text1.text=left(text1.text,5
12.324324 = 12.32

alimooghashang
پنج شنبه 01 مرداد 1388, 02:28 صبح
مرسی
اما محیط کنسول که به تکست باکس نمیرسه که
برای کنسول میخوام
یه چیزی تو مایه های round و trunc
اما قسمت اعشارشو از بین نبره
فقط دو رقمش بممونه

Nima_NF
پنج شنبه 01 مرداد 1388, 13:51 عصر
روش هلای مختلفی هست، این بستگی دارد به هدف شما، مثلا برای نمایش به این شکل:



double myNumber = 12345.7876567;

cout << setprecision(3) << myNumber ;

با استفاده از توابع format هم می توانید، sprintf یا printf یا غیره ( بعد از نقطه تعداد دقت هست):



sprintf( Strbuf, "%.2f", myNumber );

alimooghashang
پنج شنبه 01 مرداد 1388, 14:45 عصر
مرسی
اما نمیخوام نمایش بدم

میخوام بریزم توی یه متغیر دیگه
یعنی فقط ۲ رقم اعشار را نگه دارم
بقیه اش را نیاز ندارم

Mbt925
پنج شنبه 01 مرداد 1388, 19:01 عصر
شما نمی تونید تعداد ارقامی که در یک متغیر اعشاری نگه داشته میشه رو تغییر بدید.
در هر صورت دقت نگه داری شده در این اعداد ثابته.

شما فقط می تونید نمایش در خروجی رو محدود کنید.

mohamad_zehtabi
جمعه 02 مرداد 1388, 23:23 عصر
برای اینکار بهترین راه اینه که عدد را در 100 ضرب کنید به int تبدیل کنید سپس به 100 تقسیم کنید

Nima_NF
جمعه 02 مرداد 1388, 23:43 عصر
شدن را که می شود بافر خروجی هم فرق چندانی با بافرهای داخلی برنامه ندارد فقط کافی هست سایر اعداد اعشاری متغیر را صفر کنیم،
طبق مورد دومی که مثال زدم می توانید روش زیر را به کار ببرید (البته باز هم ده ها روش دیگر هست که یک موردش را در پست قبل گفتند، روش زیر تنها روشی کوتاه هست):




double myNumber = 12345.7876567;
char Strbuf[30];
double convertedNum;

sprintf( Strbuf, "%.2f", myNumber );
convertedNum = atof( Strbuf );

1485159
سه شنبه 10 شهریور 1388, 21:37 عصر
این تابع round که اصلا نمیشه استفاده کرد!!!
باید کتابخونه ای رو (درست گفتم؟) رو include کرد؟

tdkhakpur
چهارشنبه 11 شهریور 1388, 00:23 صبح
نمونه کد خود کامپایلر


#include <math.h>
#include <stdio.h>
int main(void)
{
double number = 123.54;
double down, up;
down = floor(number);
up = ceil(number);
printf("original number %5.2lf\n", number);
printf("number rounded down %5.2lf\n", down);
printf("number rounded up %5.2lf\n", up);
return 0;
}