Tablora

Tablora · Бібліотека

Перевірте 0.10 плюс 0.20 точними десятковими числами

Переконайтеся, що 0.10 плюс 0.20 дає рівно 0.30 у десятковій арифметиці, щоб порівнювати зазначений підсумок без артефактів відображення чисел з рухомою комою.

Чому 0.1 плюс 0.2 може виглядати неправильно

Багато програм зберігають числа у двійковому форматі з рухомою комою, де для 0.1 і 0.2 немає точного представлення. Додайте їх, і збережений результат виявиться трохи більшим за 0.3; залежно від формату ви побачите 0.30000000000000004 або порівняння, яке стверджує, що значення не рівні. Під час звірки такий артефакт виглядає як розбіжність, якої насправді немає.

Перевірка десяткової суми цього уникає. Вона читає кожне значення як десятковий рядок, зводить усі значення до однакової кількості знаків після крапки й додає їх як цілі числа, тому 0.10 і 0.20 у сумі дають рівно 0.30.

Як ввести рядки

Результат для 0.10 і 0.20

Зі значеннями 0.10 і 0.20 та очікуваною сумою 0.30 «Обчислена сума» дорівнює 0.30, «Різниця» — 0.00, а «Суми збігаються» показує «Так». У результаті два знаки після крапки, бо це найбільша їхня кількість серед введених значень і очікуваної суми.

«Різниця» — це завжди «Обчислена сума» мінус «Очікувана сума», тому від’ємна різниця означає, що введені рядки не дотягують до зазначеного числа.

Підготовка значень з реальної таблиці

Суми, скопійовані з виписки, рідко приходять у канонічному вигляді. Спершу пропустіть стовпець через нормалізатор чисел, вибравши десятковий роздільник і роздільник груп, які використовує документ, а потім скопіюйте перетворені значення в перевірку. Значення, затримане нормалізатором для перевірки, до додавання не готове; розберіться з ним, перш ніж довіряти підсумку.

Перевірка виконує точну арифметику над тим, що ви ввели, і нічого більше. Вона не перераховує валюти, не застосовує податки чи правила округлення й не каже, чи введено всі записи.

Що перевірка не приймає

Вхідні дані

Одне значення в рядку
0.10 0.20
Очікувана сума
0.30

Результати

Обчислена сума
0.30
Різниця
0.00
Суми збігаються
Так