---
title: "Matematik i ASP blir konstigt!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/109055-matematik-i-asp-blir-konstigt"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "M.Cheraghi"
published: "2004-08-12T17:45:39.000Z"
updated: "2004-08-13T09:36:49.000Z"
replies: 8
views: 358
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/109055-matematik-i-asp-blir-konstigt"
---

# Matematik i ASP blir konstigt!

## #1 — M.Cheraghi, 2004-08-12T17:45Z

```
UserImageX1 = request.form("UserImageX")
UserImageX2 = request.form("UserImagex2")
UserImageY1 = request.form("UserImageY")
UserImageY2 = request.form("UserImagey2")

[red][i]x2 = (UserImageX1 + UserImageX2)
Y2 = (UserImageY1 + UserImageY2)[/i][/red]

response.write UserImagex1 & " x1<br>"
response.write UserImagex2 & " x2<br>"
response.write UserImagey1 & " y1<br>"
response.write UserImageY2 & " y2<br>"
response.write "<br><br><br>"
response.write x2 & " X2 additionerad version<br>"
response.write Y2 & " y2 additionerad version<br>"
```

Det där är altså x1, x2, y1, y2

värderna separat för dessa är \<300 per variabel på ett ungefär.
Men när jag adderar dessa värden i standard läge då värderna är:

> x1 = 0
> x2 = 90
> y1 = 0
> y2 = 110

så skriver mina response.write ut

> 0 x1
> 90 x2
> 0 y1
> 110 y2
> 
> 090 X2 additionerad version
> 0110 y2 additionerad version

Vilket verkar vara i sin ordning, men jag vill \_inte\_ ha '0' innan värdet som precis har adderats. =/
Sen om jag ändrar x1 x2 y1 y2 istället för

> x1 = 0
> x2 = 90
> y1 = 0
> y2 = 110

Till följande

> x1 = 47
> x2 = 113
> y1 = 31
> y2 = 140

så blir det adderade värdet

> **47113** X2 additionerad version
> **31140** y2 additionerad version

Jag menar, hur i hela fridens namn kan 47 + 113 bli 47 tusen :OO

Permalänk: https://www.webforum.nu/p/109055

## #2 — Peeer, 2004-08-12T18:00Z

Du binder ihop två strängar istället för att addera dess värden

```
x2 = (cint(UserImageX1) + cint(UserImageX2))
Y2 = (cint(UserImageY1) + cint(UserImageY2)<)
```

Permalänk: https://www.webforum.nu/p/1409256

## #3 — M.Cheraghi, 2004-08-12T18:05Z

> **Peeer skrev:**
>
> Du binder ihop två strängar istället för att addera dess värden
>
>
> ```
> x2 = (cint(UserImageX1) + cint(UserImageX2))
> Y2 = (cint(UserImageY1) + cint(UserImageY2)<)
> ```

Jo jag insåg det själv precis la märke till att 47 + 113 = 47113 :)
Men jag hade endå ingen aning om hur jag skulle ordna till det!
Servern krashade 2 gånger när jag försökte skapa en Jpeg bild med bredden 105.000 pixlar ;)
Tack för det snabba svaret!

Permalänk: https://www.webforum.nu/p/1409261

## #4 — Erik Juhlin, 2004-08-12T19:47Z

Använd CLng istället för CInt. CInt klarar inte av tal högre än 32767 vilket är lite snålt. Har dessutom hört att CLng skulle vara bättre prestandamässigt. I.o.f.s. väldigt marginellt.

Permalänk: https://www.webforum.nu/p/1409321

## #5 — M.Cheraghi, 2004-08-12T20:27Z

> **Erik Juhlin skrev:**
>
> Använd CLng istället för CInt. CInt klarar inte av tal högre än 32767 vilket är lite snålt. Har dessutom hört att CLng skulle vara bättre prestandamässigt. I.o.f.s. väldigt marginellt.

Okej :)
Det är nog lugnt jag ska nog inte har bilder som är större än 32767 pixlar ;) Till framtiden kan det vara bra, men eftersom du säger att det ger en pytteliten prestanda skillnad, så byter jag till CLng :)
Tackar!

Permalänk: https://www.webforum.nu/p/1409356

## #6 — Erik Juhlin, 2004-08-12T21:58Z

Det är bra att alltid köra med det. Då glömmer man inte det på något ställe. Jobbigt när databasen växt till t.ex. 40000 idn efter ett år och ingen fattar varför det helt plötsligt slutat funka. :)

Permalänk: https://www.webforum.nu/p/1409408

## #7 — Engine^, 2004-08-13T09:03Z

> **Erik Juhlin skrev:**
>
> Använd CLng istället för CInt. CInt klarar inte av tal högre än 32767 vilket är lite snålt. Har dessutom hört att CLng skulle vara bättre prestandamässigt. I.o.f.s. väldigt marginellt.

När man ska räkna är det alltid bättre prestandamässigt (inte speciellt stora skillnader alltid) att använda sig av *long*, eftersom då behövs ingen konvertering från 32 bitar (eller vad nu processorn jobbar med) till något annat.

Permalänk: https://www.webforum.nu/p/1409554

## #8 — Jesper T, 2004-08-13T09:28Z

Och i vilket fall skall man då använda cInt()?

Permalänk: https://www.webforum.nu/p/1409565

## #9 — Erik Juhlin, 2004-08-13T09:36Z

I stort sett är det bäst att alltid köra med CLng. Jag tror aldrig jag använt CInt eller Integer i VB. :)

Int i SQL-server är 32 bitars precis som en Long. Gissar att det är likadant med andra DBMS.

Tips för att räkna ut hur stor tal man kan ha:
VB Integer: (2 ^ (16 - 1)) - 1
VB Long: (2 ^ (32 - 1)) - 1

Permalänk: https://www.webforum.nu/p/1409576

---

Tråden på webben: https://www.webforum.nu/amne/asp/109055-matematik-i-asp-blir-konstigt
