Символ відсотка еволюціонував зі скорочення pc — від італійського per cento (від ста).
До 1425 року для позначення відсотка не використовувалися спеціальні символи. Вживали італійський термін per cento (на сотню), у тому числі, у скороченій формі: «per 100», «p 100», «p cento». Наприклад, у тексті 1339 року використовувалася буква p з горизонтальною рискою, що зазвичай позначало скорочення «per», «por», «par», або «pur»[1].
У XV столітті абревіатуру стали записувати як «pc» з невеликим колом в кінці, що позначає кінцеву букву (в італійській на неї закінчувалися числівники, наприклад primo, secondo тощо). Перші вживання виявлені у доповненнях до тексту 1425 року, ймовірно зроблених близько 1435 року.
Абревіатура «pc» з колом поступово еволюціонувала до знаку горизонтального дробу («per o/o»; приблизно до 1 650 року), надалі втративши частину «per».
У XVIII столітті зустрічається варіант написання, схожий із сучасним:
Правила набору
У тексті знак відсотка використовують тільки при числах в цифровій формі, від яких при наборі вимагає відокремлювати нерозривним пробілом («дохід 67 %»). Це правило набору введено в дію в 1982 році нормативним документом ГОСТ 8.417-81 (згодом заміненим на ГОСТ 8.417-2002); раніше нормою було не відокремлювати знак відсотка пробілом від попередньої цифри.
Виняток: знак відсотка використовують без пробілу для скороченого запису складних слів, утворених за допомогою числівника і прикметника «відсотковий». Наприклад:
Чинний стандарт ДСТУ ISO 80000-1:2016 явним чином вимагає набирати знак відсотка (а також знак проміле ‰) після числа, відокремлюючи його пробілом (див. ДСТУ ISO 80000-1:2016 Величини та одиниці. Частина 1. Загальні положення. П. 7.1.4[2]).
Використання в інформатиці
Був доданий в 6-бітне кодування комітетом X3.2 в 1961 році. Пізніше ECMA мала намір взяти код для символу % у власному 6-бітному варіанті, однак у фінальний набір символ не ввійшов[3].
У Бейсіку знак відсотка, поставлений відразу після імені змінної, означає тип даних «ціле».
У мові Сі, а також в інших мовах його синтаксичного сімейства (B, C ++, D, Java та ін.), знак відсотка позначає операцію обчислення залишку від цілочисельного ділення, наприклад 8 % 3 = 2. Також знак відсотка використовується як спеціальний символ, з якого починається специфікація формату введення або виведення даних у «форматних» строкових функціях стандартної бібліотеки Сі, таких як printf і scanf, а також багатьох інших, що використовують схожі форматні рядки, наприклад printk у ядрі Linux (форматує рядок і виводить її на системну консоль); аналогічним чином символ відсотка використовується в Unix — програмою (в деяких випадках — shell builtin-е) printf. Компілятор Сі з Oracle Solaris Studio використовує знак відсотка в форматних специфікаторах директиви компілятора #pragma ident.
У багатьох програмах знаками відсотка відображають ключові слова, наприклад %title%, %site%.
У Perl знак відсотка, що передує імені змінної, означає тип даних «хеш».
У командах DOS та пакетних файлах використовується як перший символ оголошення постановчої змінної для команди FOR; для пакетних файлів потрібно вказувати подвійний знак відсотка — %%.
В операційній системі Microsoft Windows для доступу до змінних оточення, а також локальним (сесійним) змінним командного інтерпретатора cmd.exe .
В URI для недрукованих символів і символів, що не входять в ASCII[4] використовується «відсоткове кодування»: за знаком відсотка вказується шістнадцяткове значення байта (семібітної послідовності у разі символів ASCII), що зберігає символ, наприклад %5d. Інше використання символу заборонено.
В SQL знак відсотка при команді LIKE замінює будь-яку кількість будь-яких символів, тобто забезпечує пошук по масці.
У калькуляторах є кнопка із зображенням відсотка. Залежно від фірми-виробника найпростіші калькулятори обчислюють: відсоток від числа; відсоткове відношення одного числа від іншого; відсоткову надбавку (mark-up); відсоткова зміна.
↑Universal Resource Identifiers [Архівовано 30 вересня 2015 у Wayback Machine.]: «Recommendations» / W3.org "The percent sign ("% «, ASCII 25 hex) is used as the escape character in the encoding scheme and is never allowed for anything else.» (англ.)