PDA

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



ramin149
یک شنبه 05 دی 1389, 11:21 صبح
من می خوام یک عدد مانند 2.564 به برنامه بدم و برنامه عدد را رند کنه به عدد طبیعی و چاپ کنه 3 و دفعه و یک بار هم به صورت اعشاری رند کنه و چاپ کنه 2.6

dp_split
یک شنبه 05 دی 1389, 15:57 عصر
تا آنجاییکه من خبر دارم تابعی در کتابخانه ی استاندارد برای گرد کردن عدد وجود ندارد. البته دو تابع floor و ceil برای گرد کردن به پایین و بالا وجود داره، ولی فکر کنم منظور شما گرد کردن به نزدیک ترین عدد صحیح باشد. شاید برخی کمپایلرها تابعی برای این عمل داشته باشند، ولی فکر کنم تابع استاندارد وجود ندارد.

ولی در سی پلاس پلاس می شه این کار را با نوشتن یک تابع ساده انجام داد:




#include <cmath>
#include <iostream>
using namespace std;

double round(double x, int precision) {
for(int i = 0; i < precision; i ++) x *= 10;
x = floor(x + 0.5000000001);
for(int i = 0; i < precision; i ++) x *= 0.1;
return x;
}

int main() {
double x = 2.654;
cout << round(x, 0) << endl;
cout << round(x, 1) << endl;
return 0;
}

ramin149
یک شنبه 05 دی 1389, 23:13 عصر
ببخشید من c++ نخوندم میشه این کد رو به زبان c بنویسید
یا اگر امکانش نیست کتابخانه ها ی که استفاده گردید اسمشون رو در c بگیید ؟