Citat:
Ursprungligen postat av dAEk
Hur hanterar ni fall där ratio-beräkningarna inte blir exakta? Jag gör liknande beräkningar men en del bilder som skalas ned blir 199px när jag sätter maxdimensionerna till 200. Det beror på castningar från double till int. Vet ni några bra sätt att lösa det på förutom att göra fula if-else-kontroller och lägga till tomma pixlar?
Ni borde ha samma problematik i era varianter ovan.
|
Det beror dels på att det är en begränsning i hur många decimaler PHP kan hantera och att PHP gör om siffrorna till base 2 internt. Läs mer om det i Floating point precision-varningen här:
http://www.php.net/manual/en/language.types.float.php
Den andra anledningen är att när man castar till Int kapar de väl bara bort decimalerna (dvs kör en floor(), t.ex. 5,6 => 5). För att det ska bli rätt är det bara att köra ceil() eller round() för att få hela pixlar innan du castar till Int(om du nu måste det).