Mar. 21st, 2017

1280÷7

Mar. 21st, 2017 10:51 pm
ermouth: (ang)
Начал тестировать одну софтинку на всяком старье – и сразу словил гемор, вестимо из IE, хоть и не слишком старого, 11 версии.

В CSS3 можно задавать размеры элементов, используя выражения типа width:(100% / 7) или width:(50% - 10px +1em) – то-есть сочетать разные единицы измерения в одном выражении. Исключительно удобая штука, хотя и дорогая в плане CPU и перерисовки.

Так вот, по мнению IE11, если поставить рядом 7 элементов с шириной calc(100% / 7), они в ряд почти всегда не помещаются, если эти 100% в пикселях на 7 нацело не делятся. При этом айтемы с шириной calc((100% - 0.01px) / 7) помещаются всегда.

То-есть второй факт однозначно свидетельствует, что внутренние расчёты всё таки subpixel-точности (как и требует стандарт). Вот только первый факт свидетельствует о том, что fp-арифметика там внутри скорее всего не IEEE-754, либо она хуже по точности, чем binary32.

Любопытно, что с обычной 64-битной fp-точностью все вычисления n/7*7 для целых n из нужного мне интервала [1250,1280] возвращают n точно. То-есть это роботы в IE team сидели и специально придумывали какую-нибудь недооптимизацию своей тормозной поделки, ну и по пути напакостили.

Типичное, впрочем, явление вообще для всего софта Microsoft, что я видел. 

Profile

ermouth: (Default)
ermouth

September 2017

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 24th, 2017 07:27 pm
Powered by Dreamwidth Studios