Конвертер не может знать, насколько точным был ваш исходный ввод
Если введете "12,5" в конвертер единиц, он умножит на сохраненный коэффициент с точностью до пятнадцати или шестнадцати цифр двойной точности, а затем выдаст результат, отформатированный до нескольких десятичных знаков. Ничего неправильного в этой арифметике нет. Что может быть неправильно, так это отношение к выходу как к более надежному, чем вход, потому что конвертер не может знать, означал ли "12,5" точно 12,500000… или был это результат измерения рулеткой, имеющей точность только до трех значащих цифр и не более того. На странице Методология этого сайта указана политика отображения — до 8 десятичных знаков, с удаленными конечными нулями, научная нотация вне диапазона примерно 1e-6 до 1e9. Это правило форматирования. Оно ничего не говорит о том, какие из этих отображаемых цифр имеют смысл для конкретного входного значения — это суждение, которое может сделать только тот, кто владеет исходным измерением.
Что на самом деле означают "значащие цифры"
Значащая цифра — это цифра, которая несет реальную информацию об измеренной величине, в отличие от цифры, которая только определяет масштаб числа. В 0,0250 два ведущих нуля не являются значащими — они только размещают десятичную точку — но конечный ноль после 5 значащий, потому что кто-то выбрал его написать, подразумевая, что значение известно до этой четвертой цифры, а не, скажем, 0,02 с не указанным округлением. Именно здесь без десятичной нотации возникает неоднозначность: "200 кг" может означать точно известное до трех значащих цифр или примерную цифру, известную только с одной. Научная нотация полностью устраняет двусмысленность — 2 × 10² кг в сравнении с 2,00 × 10² кг невозможно неправильно прочитать.
Два разных правила в зависимости от операции
Комбинирование измеренных величин теряет точность по-разному в зависимости от того, является ли операция мультипликативной или аддитивной, и применение неправильного правила — частая ошибка:
- Умножение и деление (это то, чем является каждое преобразование единиц): результат содержит не более значащих цифр, чем наименее точный входной параметр. Преобразование длины, известной до 3 значащих цифр, в другую единицу все равно оставляет вас с 3 значащими цифрами реальной информации, независимо от того, сколько цифр выдает арифметика.
- Сложение и вычитание: результат содержит не более десятичных знаков, чем наименее точный входной параметр, независимо от количества значащих цифр. 12,5 м + 0,084 м ограничено одним десятичным знаком первым членом, что дает 12,6 м, а не 12,584 м.
Преобразование единиц всегда является первым случаем: значение × коэффициент. Точность самого коэффициента также имеет значение, что и делает "определенный по определению" важным.
Коэффициенты, определенные по определению, не стоят вам значащих цифр; измеренные же стоят
Умножение на точный коэффициент преобразования — 1 дюйм = 2,54 см ровно, 1 фунт = 0,45359237 кг ровно — не снижает точность, потому что число, определенное по определению, не несет неопределенности само по себе; каждая цифра коэффициента доступна, если вы ее хотите. Измеренный коэффициент преобразования отличается: до переопределения метра в 1983 году в терминах скорости света сама скорость света была измеренной величиной с прикрепленной экспериментальной неопределенностью, и любой расчет, использующий его, наследовал эту неопределенность так же, как он наследовал бы неопределенность от измеренной длины. После 1983 года скорость света зафиксирована ровно на 299 792 458 м/с по определению и добавляет нулевую дополнительную неопределенность ко всему, вычисленному из нее. Урок обобщается: ограничивающий фактор точности преобразования почти всегда является измеренным входным параметром, а не сохраненной константой, при условии, что константа действительно точна. Когда на этом сайте используется неточная, зависящая от контекста цифра — коэффициент выбросов углерода, задокументированный на странице Методология, является наиболее ярким примером — эта цифра, а не арифметика, является фактическим потолком точности.
Проработанный пример: преобразование измерения комнаты
Комната, измеренная рулеткой на 12,5 фута на 10,25 фута — три и четыре значащие цифры соответственно, типичные для рулетки, прочитанной до ближайшей четвертинки дюйма на более длинной стене и более короткой, измеренной немного более тщательно. Преобразование каждой стороны в метры, используя точный коэффициент 1 фут = 0,3048 м:
| Измерение | Значащие цифры | Сырой продукт | Правильно округленный | Ложно точный (типичный дисплей калькулятора) |
|---|---|---|---|---|
| 12,5 фута × 0,3048 | 3 | 3,81 м | 3,81 м | 3,81000000 м |
| 10,25 фута × 0,3048 | 4 | 3,1242 м | 3,124 м | 3,12420000 м |
| Площадь: 3,81 м × 3,124 м | 3 (ограничено стороной с 3 значащими цифрами) | 11,90244 м² | 11,9 м² | 11,90244000 м² |
Цифра площади — та, которая имеет значение: калькулятор с удовольствием выдаст 11,90244 м², восьмизначную точность, унаследованную от того, что арифметика с плавающей точкой не имеет мнения о качестве измерения. Рулетка никогда не поддерживала более трех значащих цифр при более короком показании, поэтому честный ответ — 11,9 м² — остальные пять цифр — это арифметический шум, а не информация о комнате.
Где ошибка действительно накапливается: цепные преобразования
Одно умножение на точный коэффициент не добавляет ошибку. Цепь преобразований все же может потерять точность, но механизм — это округление на промежуточных шагах, а не сами преобразования. Преобразование 12,5 фута в метры, округление этого результата до 3,81 м, а затем преобразование 3,81 м в миллиметры дает 3 810 мм — и выглядит идентично прямому преобразованию 12,5 фута в миллиметры (3 810,0 мм), потому что в этом случае промежуточное округление произошло на круглом числе. Это не всегда работает так чисто: округлите 10,25 фута в метры при 2 десятичных знаках сначала (3,12 м, отбросив верные 3,1242 м), затем преобразуйте эту округленную цифру дальше, чтобы вычислить площадь со стороной 3,81 м, и площадь выходит как 3,81 × 3,12 = 11,8872 м² — отличающаяся четвертая значащая цифра от 11,90244 м², полученной при сохранении полной точности и округлении только один раз в конце. Ни одно число не "более неправильно" в абсолютном смысле при 3 значащих цифрах (11,9 м² в любом случае), но расхождение растет с каждым дополнительным округленным промежуточным шагом в более длинной цепи, что в точности объясняет, почему этот сайт сохраняет каждый коэффициент при полной точности с плавающей точкой и округляет только на шаге окончательного отображения, никогда в промежутке.
Практическое правило
Сохраняйте полную точность на каждом промежуточном шаге вычисления и округляйте ровно один раз, в конце, до количества значащих цифр, которое ваш наименее точный входной параметр действительно поддерживает. Конвертер, который показывает восемь десятичных знаков, не заявляет восьмизначную точность в реальном мире для вашего конкретного входного параметра — он отказывается угадывать, сколько из этих цифр вам нужно, что является суждением читателя, а не инструмента.