03. februar 2004 - 18:32Der er
14 kommentarer og 2 løsninger
Double med MAX 9 decimaler
Hej
Jeg har lidt problemer med billede scalering i asp.net C# ... jeg tror jeg har fundet frem til fejlen da den kun sker ved nogle billeder....
Min ide er at når jeg ved nogle billeder vil scalere dem.. bliver den double alt for lang.. det sker nemlig oftest ved de billeder hvor min double kommer til at være 1/3 altså 324.333333333333333333333333333333333333333333333333333333333333333333333 kan det passe det resultetere i en memory error exception... jeg har regnet dem alle sammen ud .. og det sker kun hvis der som før eksemepelt vis aldrig er en ende på doublen...
hvordan gør jeg så min double kun bliver med et vist antal decimaler..... eksempelvist 9 eller mindre...
double er binært baseret d.v.s. at det er a1/2+a2/4+a3/8+a4/16+... ikke decimalt baseret a1/10+a2/100+a3/1000+... d.v.s. at en double ikke har "antal decimaler" i klassisk betydning.
Muligvis kan du bruge typen decimal i.s.f. double.
Det jeg vil er at tage mit converted bitmap.. hente højde og bredde på dem.... hvis bredden er breddere end 500(maxWidth)skal den sætte newWidth(den nye bredde på bitmap) til 500... regne ud hvormange procent mindre billedet er .. og derefter scalere højden probertionelt... tager vi så eksempelvist et billede på 3072x2048 og sætter bredden til 500 bliver scalefactor = 6.1444 .. og den nye højde 333,1/3.. og det er her den laver fejl tror jeg...
Har siddet og tænkt på om man kunne regne det ud på en anden måde.. men mine matematiske evner er ikke noget at prale af...
jeg har prøvet at tage et billede der har den størrelse og scale det ned til 3000x2000 så virker det fint... jeg har forsøgt med 40 mb jpg billeder og det virker fint... så jeg tror kun det kan være der...
spørgsmålet er sådan set bare hvordan jeg får x til ikke at blive for lang ved ligningen | x = 10 / 3 | hvis jeg blot skriver det ud som en double laver den det godt nok om.. så det bare bliver 3.333333333 .. jeg er lidt lost
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.