Число з плаваючою комою - це число, яке має нуль або більше цифр після десяткового розділювача.
Наприклад: -2.4, 0.1, 3.14, 5., 16.984025 і 1024.0.
Різні типи чисел з плаваючою комою можуть зберігати різну кількість цифр після десяткового розділювача. Це називається точністю.
У Go є два типи чисел з плаваючою комою:
float32: 32 біти (точність ~6-9 цифр).float64: 64 біти (точність ~15-17 цифр).
Це типовий тип для чисел з плаваючою комою.Як бачимо, обидва типи можуть зберігати різну кількість цифр.
Це означає, що якщо ми спробуємо зберегти число π у float32, збережуться лише перші 6-9 цифр (а остання цифра буде округлена).
Типово Go використовує float64 для чисел з плаваючою комою, якщо тільки це число не:
float32, абоfloat32, абоfloat32().Пакет math містить багато корисних математичних функцій.
У цій вправі ми працюватимемо з ощадними рахунками. Щороку баланс нашого ощадного рахунку оновлюється відповідно до його відсоткової ставки. Відсоткова ставка, яку дає нам банк, залежить від суми грошей на рахунку (його балансу):
0 доларів (баланс стає ще більш відʼємним).0 доларів, і меншого за 1000 доларів.1000 доларів, і меншого за 5000 доларів.5000 доларів.На нас чекають чотири завдання, кожне з яких стосуватиметься балансу та його відсоткової ставки.
Реалізуйте функцію InterestRate(), щоб обчислити відсоткову ставку за вказаним балансом:
InterestRate(200.75)
// => 0.5
Зауважте, що повернене значення має тип float32.
Реалізуйте функцію Interest(), щоб обчислити відсотки за вказаним балансом:
Interest(200.75)
// => 1.003750
Зауважте, що повернене значення має тип float64.
Реалізуйте функцію AnnualBalanceUpdate(), щоб обчислити річне оновлення балансу з урахуванням відсоткової ставки:
AnnualBalanceUpdate(200.75)
// => 201.75375
Зауважте, що повернене значення має тип float64.
Реалізуйте функцію YearsBeforeDesiredBalance(), щоб обчислити мінімальну кількість років, потрібних для досягнення бажаного балансу, зважаючи на те, що щороку до балансу додаються відсотки.
Це означає, що баланс за один рік становить: початковий баланс + відсотки за початковий баланс.
Баланс за другий рік становить: баланс за один рік + відсотки за баланс за один рік.
І так далі, доки баланс поточного року не стане більшим або рівним цільовому балансу.
balance := 200.75
targetBalance := 214.88
YearsBeforeDesiredBalance(balance, targetBalance)
// => 14
Зауважте, що повернене значення має тип int.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Go, а також 34 концепції166 вправ та справжнє наставництво від людей, і все це безкоштовно.