"Fits 15.6-inch laptops" is printed on a lot of backpacks, but 15.6 inches is the screen diagonal, not the size of the machine. A bit of Pythagoras turns the diagonal into width and height.

Screen size from diagonal and aspect ratio

For a ratio of w:h, the diagonal is the hypotenuse, so each side is a share of it:

from math import hypot def screen_mm(diag_in, ratio=(16, 9)): rw, rh = ratio k = diag_in * 25.4 / hypot(rw, rh) return round(rw * k), round(rh * k) for d, r in [(14, (16, 9)), (15.6, (16, 9)), (16, (16, 10)), (17.3, (16, 9))]: print(d, r, screen_mm(d, r)) 
14 (16, 9) (310, 174) 15.6 (16, 9) (345, 194) 16 (16, 10) (345, 215) 17.3 (16, 9) (383, 215) 

Notice that a 16-inch 16:10 screen is as wide as a 15.6-inch 16:9 one, just taller.

From screen to body

The body adds bezels, plus a deeper bottom edge for the hinge. The allowances below are rough guesses, so replace them with your laptop's spec sheet when you have it:

def body_estimate(diag_in, ratio=(16, 9), side=12, top=12, bottom=40): w, h = screen_mm(diag_in, ratio) return w + 2 * side, h + top + bottom print(body_estimate(15.6)) # (369, 246) 

Checking a sleeve

def fits(laptop_mm, sleeve_mm, margin=10): return all(s >= l + margin for l, s in zip(laptop_mm, sleeve_mm)) 

Measure the sleeve inside, flat, and allow a few millimetres for the padding.

PackForge's bulk laptop backpacks (about 20 to 30 litres) have a padded compartment for 15.6-inch laptops, with 17-inch versions made to order and logo branding available: Laptop backpacks.