Hejsan! Eftersom text1.text är en sträng och text2.text är en sträng så lägger VB ihop (konkatenerar) strängvärdena, inte siffrorna. Du bör i stället typkonvertera strängvärdena till något talformat, genom att använda t ex funktionen Val() eller någon Cxxx()-funktion där xxx är datatypen (ex : Csng konverterar till Singel, CInt konverterar till integer, ...). För att komplettera: Eh Anna-Karin... Är det inte just det vi gör? Vi använder komma som öresavdelare och mellanslag som tusentalsavgränsare. Men i detta fall tycker jag att anglosaxerna har rätt.Decimalavskiljare skall vara punkt. Agree totally the decimal point should be a decimal POINT and not a a decimal comma! Jag förutsätter att du kan svenska, men skriver på engelska pga. din härkomst.Räknar konstigt
Nått tok har hänt.
Här har ni problemet
i text1.text är värdet 80,09
och i text2.text är värdet 90,05
när jag kör text1.text + text2.text så sätter han ihop dessa tal till 80,0990,05.
hur kommer jag bort från detta?
Jag kan inte köra med int(text1.text + text2.text) för då skriker den direkt när det är ett komma med.
hur skall jag göra?
JohanSv: Räknar konstigt
<code>
text3.text = Val(text1.text) + Val(text2.text)
</code>
eller (konvertera numeriska värdet till sträng innan man lägger in det i text-fältet):
<code>
text3.text = Format(Val(text1.text) + Val(text2.text))
</code>
En annan sak som berör ämnet är att det kan vara idé att vänja sig vid att använda &-operatorn när man ska slå ihop strängar. Detta för att tydligt visa att avsikten är en strängkonkatenering.Sv: Räknar konstigt
I sverige så använder vi ju inte komma som öresavdelare utan punkt.
Så enklast om du vill räkna med nuffrorna är att köra en replace på kommatecknet och ersätta det med en punkt, sen kan du använda cInt för att göra om det till tal.
//Anna-KarinSv: Räknar konstigt
Val() känner inte av regionala inställningar utan den förutsätter att decimalpunkt används. Cxxx()-funktionerna däremot känner av regionala inställningar för decimaltecken och tusentalsavkiljare. Sv: Räknar konstigt
I engelska länder använder man däremot punkt som öres- (cent- etc) avdelare och komma som tusentalsavgränsare...
I övrigt instämmer jag med föregående talare - VB är ett amerikanskt program - och som de flesta amerikaner så utgår det att världen fungerar exakt som på hemmaplan - så om du inte använder punkt som öres-avgränsare så är det bara att köra en replace, eller enklare en konvertering med Val, enl tidigare förslag. =D
/Emma - som längtar och kikar ut på det fantastiska vädret!Sv: Räknar konstigt
Sv: Räknar konstigt
As everything that is saved in MS data stores is stored with a DOT why not use it all the time.
Also try to use Cdbl(txtText) other wise you might end up losing your decimals!
cheers PaulSv: Räknar konstigt
Grejen är att decimalpunkten, decimalkommat, etc. är en av världens minst standardiserade beteckningar. Olika vad gäller olika länder, olika om det handlar om pengar eller tal, osv., osv. (möjliga varianter är . , ; :)
Däremot är det så att i alla (?) europeiska länder utom storbrittanien så använder man decimalkommat, jag tror att det till och med att det är definierat så enligt SI-systemet.
Jag tror på en standarisering av systemet i allmänhet, och det mest lämpade idag är SI-systemet - dessa slugs, lbs, och allt vad det heter passar inte i ett modernt samhälle. I och med att SI-systemet bygger ur den europiska (i första hand franska) tolkningen, borde väl även denna typ av standardisering vara lämplig.
De perioder jag jobbar har vi ständigt ett onödigt krångel med denna diskrepans. Att det heter decimalpunkt på engelska är inte ett argument för att använda beteckningen, inte heller att Microsoft använder det - särskilt som t.ex. Excel inte gör det om man har ett svenskt system.