trunc ফ্যামিলি ফাংশনগুলো ফ্লোটিং-পয়েন্ট নম্বর থেকে ডেসিমাল অংশ কাটিয়ে (ট্রানকেট করে) শুধু ইন্টিজার অংশ রিটার্ন করে। এটি শূন্যের দিকে রাউন্ড করে (round toward zero)।
ফাংশন সিগনেচার (<math.h> / <cmath>)
| ফাংশন | ইনপুট টাইপ | রিটার্ন টাইপ |
trunc | double | double |
truncf | float | float |
truncl | long double | long double |
১. trunc() — double
#include <stdio.h>
#include <math.h>
int main() {
double x = 53.26, y = 75.86;
double a = trunc(x);
double b = trunc(y);
printf("trunc(53.26) = %lf\n", a); // 53.000000
printf("trunc(75.86) = %lf\n", b); // 75.000000
// নেগেটিভের জন্য:
printf("trunc(-3.7) = %lf\n", trunc(-3.7)); // -3.0
return 0;
}
২. truncf() — float
#include <stdio.h>
#include <math.h>
int main() {
float x = 53.26f, y = 75.86f;
float a = truncf(x);
float b = truncf(y);
printf("truncf(53.26) = %f\n", a); // 53.000000
printf("truncf(75.86) = %f\n", b); // 75.000000
return 0;
}
৩. truncl() — long double
#include <stdio.h>
#include <math.h>
int main() {
long double x = 53547.55555555555L;
long double y = 78547.55555555523L;
long double a = truncl(x);
long double b = truncl(y);
printf("truncl(x) = %Lf\n", a); // 53547.000000
printf("truncl(y) = %Lf\n", b); // 78547.000000
return 0;
}
তুলনা: trunc vs floor vs ceil vs round
| ফাংশন | ২.৩ | ২.৭ | -২.৩ | -২.৭ |
trunc | 2 | 2 | -2 | -2 |
floor | 2 | 2 | -3 | -3 |
ceil | 3 | 3 | -2 | -2 |
round | 2 | 3 | -2 | -3 |
সহযোগী ফাংশন
floor() — নিচের দিকে রাউন্ড
ceil() — উপরের দিকে রাউন্ড
round() — নিকটতম পূর্ণসংখ্যায় রাউন্ড (half away from zero)
nearbyint(), rint() — বর্তমান রাউন্ডিং মোড অনুযায়ী
দ্রষ্টব্য
- রিটার্ন টাইপ ফ্লোটিং-পয়েন্টই (ইন্ট নয়) — ইন্ট চাইলে কাস্ট করুন:
(int)trunc(x)
- C99/C++11 থেকে স্ট্যান্ডার্ড
errno বা এক্সসেপশন সেট করে না (সাধারণত)