Число з плаваючою комою містить нуль або більше цифр після десяткового розділювача. Наприклад: -2.4, 0.1, 3.14, 16.984025 і 1024.0.
Різні типи з плаваючою комою можуть зберігати різну кількість цифр після десяткового розділювача; це називається точністю.
У C# є три типи з плаваючою комою:
float: 4 байти (точність ~6-9 цифр). Записується як 2.45f.double: 8 байтів (точність ~15-17 цифр). Це найпоширеніший тип. Записується як 2.45 або 2.45d.decimal: 16 байтів (точність 28-29 цифр). Зазвичай використовується під час роботи з грошовими даними, оскільки його точність зменшує ймовірність помилок округлення. Записується як 2.45m.Як бачимо, кожен тип може зберігати різну кількість цифр. Наприклад, якщо спробувати зберегти число π у float, збережуться лише перші 6 знаків після коми (остання збережена цифра буде округлена).
while
У цій вправі нам може знадобитися цикл. У C# є кілька способів записати цикл, але тут найдоречнішим буде цикл while:
int x = 23;
while (x > 10)
{
// Execute logic if x > 10
x = x - 2;
}
do/while
Якщо код у циклі має виконуватися принаймні один раз, можна використати цикл do/while:
int x = 23;
do
{
// Execute body, repeating only if x > 10
x = x - 2;
} while (x > 10);
У цій вправі ми працюватимемо з ощадними рахунками. Щороку баланс ощадного рахунку оновлюється відповідно до його відсоткової ставки. Відсоткова ставка, яку надає банк, залежить від суми грошей на рахунку (його балансу):
1000 доларів.1000 доларів (включно) і меншого за 5000 доларів.5000 доларів (включно).На нас чекає чотири завдання, і кожне з них стосуватиметься балансу та його відсоткової ставки.
Реалізуйте (статичний) метод SavingsAccount.InterestRate(), щоб обчислити відсоткову ставку на основі заданого балансу:
SavingsAccount.InterestRate(balance: 200.75m)
// 0.5f
Зверніть увагу, що повернене значення має тип float.
Реалізуйте (статичний) метод SavingsAccount.Interest(), щоб обчислити відсотки на основі заданого балансу:
SavingsAccount.Interest(balance: 200.75m)
// 1.00375m
Зверніть увагу, що повернене значення має тип decimal.
Реалізуйте (статичний) метод SavingsAccount.AnnualBalanceUpdate(), щоб обчислити оновлений річний баланс з урахуванням відсоткової ставки:
SavingsAccount.AnnualBalanceUpdate(balance: 200.75m)
// 201.75375m
Зверніть увагу, що повернене значення має тип decimal.
Реалізуйте (статичний) метод SavingsAccount.YearsBeforeDesiredBalance(), щоб обчислити мінімальну кількість років, потрібних для досягнення бажаного балансу за щорічного нарахування складних відсотків:
SavingsAccount.YearsBeforeDesiredBalance(balance: 200.75m, targetBalance: 214.88m)
// 14
Зверніть увагу, що повернене значення має тип int.
Коли до початкового балансу застосовують прості відсотки, баланс множать на відсоткову ставку, а добуток цих двох величин дає суму відсотків.
Складні відсотки, зі свого боку, нараховують через регулярні проміжки часу. Щоразу суму відсотків обчислюють і додають до початкового балансу, тож наступні нарахування відсотків відбуваються вже від більшого балансу.
Зареєструйтеся на Exercism, щоб вивчати й опановувати C#, а також 62 концепції178 вправ та справжнє наставництво від людей, і все це безкоштовно.