ফ্লোটিং পয়েন্ট সংখ্যা হলো এমন একটি সংখ্যা, যার দশমিক বিন্দুর পরে শূন্য বা তার বেশি ডিজিট থাকে। উদাহরণ: -2.4, 0.1, 3.14, 16.984025 এবং 1024.0।
ভিন্ন ভিন্ন ফ্লোটিং পয়েন্ট টাইপ দশমিক বিন্দুর পরে ভিন্ন সংখ্যক ডিজিট সংরক্ষণ করতে পারে। একেই বলে তার প্রিসিশন।
C#-এ তিনটি ফ্লোটিং পয়েন্ট টাইপ আছে:
float: ৪ বাইট (প্রায় ৬-৯ ডিজিট প্রিসিশন)। লেখা হয় 2.45f।double: ৮ বাইট (প্রায় ১৫-১৭ ডিজিট প্রিসিশন)। এটি সবচেয়ে কমন টাইপ। লেখা হয় 2.45 অথবা 2.45d।decimal: ১৬ বাইট (২৮-২৯ ডিজিট প্রিসিশন)। সাধারণত আর্থিক ডেটা নিয়ে কাজ করার সময় এটি ব্যবহার করা হয়, কারণ এর প্রিসিশন রাউন্ডিং এররের সম্ভাবনা কমিয়ে দেয়। লেখা হয় 2.45m।যেমনটি দেখা যাচ্ছে, প্রতিটি টাইপ ভিন্ন সংখ্যক ডিজিট সংরক্ষণ করতে পারে। উদাহরণস্বরূপ, একটি float টাইপে PI সংরক্ষণ করতে চাইলে শুধু প্রথম ৬টি দশমিক স্থান সংরক্ষিত হবে (শেষ সংরক্ষিত ডিজিটটি রাউন্ড করা হয়)।
এই অনুশীলনীতে আপনি একটি লুপ ব্যবহার করতে চাইতে পারেন। C#-এ লুপ লেখার একাধিক উপায় আছে, তবে এখানে while লুপই সবচেয়ে উপযুক্ত:
int x = 23;
while (x > 10)
{
// Execute logic if x > 10
x = x - 2;
}
লুপের কোডটি যদি অন্তত একবার সবসময় চালানো দরকার হয়, তাহলে do/while লুপ ব্যবহার করা যায়:
int x = 23;
do
{
// Execute body, repeating only if x > 10
x = x - 2;
} while (x > 10);
এই অনুশীলনীতে আপনি সেভিংস অ্যাকাউন্ট নিয়ে কাজ করবেন। প্রতি বছর আপনার সেভিংস অ্যাকাউন্টের ব্যালান্স তার সুদের হারের ভিত্তিতে হালনাগাদ হয়। আপনার ব্যাংক আপনাকে যে সুদের হার দেয়, তা আপনার অ্যাকাউন্টে থাকা অর্থের পরিমাণের (অর্থাৎ ব্যালান্সের) উপর নির্ভর করে:
1000 ডলারের কম ধনাত্মক ব্যালান্সের জন্য 0.5%।1000 ডলার বা তার বেশি এবং 5000 ডলারের কম ধনাত্মক ব্যালান্সের জন্য 1.621%।5000 ডলার বা তার বেশি ধনাত্মক ব্যালান্সের জন্য 2.475%।আপনার জন্য চারটি কাজ রয়েছে, যার প্রতিটিতে আপনার ব্যালান্স ও তার সুদের হার নিয়ে কাজ করতে হবে।
নির্দিষ্ট ব্যালান্সের ভিত্তিতে সুদের হার হিসাব করতে (static) SavingsAccount.InterestRate() মেথডটি ইমপ্লিমেন্ট করুন:
SavingsAccount.InterestRate(balance: 200.75m)
// 0.5f
মনে রাখবেন, রিটার্ন করা মানটি একটি float.
নির্দিষ্ট ব্যালান্সের ভিত্তিতে সুদ হিসাব করতে (static) SavingsAccount.Interest() মেথডটি ইমপ্লিমেন্ট করুন:
SavingsAccount.Interest(balance: 200.75m)
// 1.00375m
মনে রাখবেন, রিটার্ন করা মানটি একটি decimal.
সুদের হার বিবেচনায় নিয়ে হালনাগাদ বার্ষিক ব্যালান্স হিসাব করতে (static) SavingsAccount.AnnualBalanceUpdate() মেথডটি ইমপ্লিমেন্ট করুন:
SavingsAccount.AnnualBalanceUpdate(balance: 200.75m)
// 201.75375m
মনে রাখবেন, রিটার্ন করা মানটি একটি decimal.
প্রতি বছর চক্রবৃদ্ধি সুদ প্রয়োগ হলে কাঙ্ক্ষিত ব্যালান্সে পৌঁছাতে ন্যূনতম কত বছর লাগবে তা হিসাব করতে (static) SavingsAccount.YearsBeforeDesiredBalance() মেথডটি ইমপ্লিমেন্ট করুন:
SavingsAccount.YearsBeforeDesiredBalance(balance: 200.75m, targetBalance: 214.88m)
// 14
মনে রাখবেন, রিটার্ন করা মানটি একটি int.
মূল ব্যালান্সে সরল সুদ প্রয়োগ করা হলে, ব্যালান্সটিকে সুদের হার দিয়ে গুণ করা হয় এবং এই দুটির গুণফলই সুদের পরিমাণ।
অন্যদিকে চক্রবৃদ্ধি সুদ প্রয়োগ করা হয় নির্দিষ্ট বিরতিতে বারবার। প্রতিবার প্রয়োগের সময় সুদের পরিমাণ হিসাব করে তা মূল ব্যালান্সের সাথে যোগ করা হয়, যাতে পরের সুদের হিসাবগুলো আরও বড় একটি মূল ব্যালান্সের উপর করা হয়।
Exercism-এ সাইন আপ করুন, C# ট্র্যাকের 62টি কনসেপ্ট178টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।