কম্পিউটার টিউটোরিয়াল

সি ভাষায় trunc(), truncf(), truncl() ফাংশন: ফ্লোটিং পয়েন্ট ট্রানকেশন

trunc ফ্যামিলি ফাংশনগুলো ফ্লোটিং-পয়েন্ট নম্বর থেকে ডেসিমাল অংশ কাটিয়ে (ট্রানকেট করে) শুধু ইন্টিজার অংশ রিটার্ন করে। এটি শূন্যের দিকে রাউন্ড করে (round toward zero)।

ফাংশন সিগনেচার (<math.h> / <cmath>)

ফাংশনইনপুট টাইপরিটার্ন টাইপ
truncdoubledouble
truncffloatfloat
truncllong doublelong 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

ফাংশন২.৩২.৭-২.৩-২.৭
trunc22-2-2
floor22-3-3
ceil33-2-2
round23-2-3

সহযোগী ফাংশন

  • floor() — নিচের দিকে রাউন্ড
  • ceil() — উপরের দিকে রাউন্ড
  • round() — নিকটতম পূর্ণসংখ্যায় রাউন্ড (half away from zero)
  • nearbyint(), rint() — বর্তমান রাউন্ডিং মোড অনুযায়ী

দ্রষ্টব্য

  • রিটার্ন টাইপ ফ্লোটিং-পয়েন্টই (ইন্ট নয়) — ইন্ট চাইলে কাস্ট করুন: (int)trunc(x)
  • C99/C++11 থেকে স্ট্যান্ডার্ড
  • errno বা এক্সসেপশন সেট করে না (সাধারণত)
  1. সি ভাষায় কনস্ট্যান্ট (Constant) কী এবং উদাহরণ

  2. সি ভাষায় শিফট অপারেশন (লেফট, রাইট শিফট এবং কমপ্লিমেন্ট)

  3. C-এ "register" কীওয়ার্ড

  4. C#-এ OverflowException: ইন্টিজার রেঞ্জ বাইরে মান