Finns det någon där ute som har något smart tips på decimal begränsning. Pixlar och Dpi har inga decimaler. Vid division får du alltid ett tal som underförstått Det jag vill är att läsa av pixlarna utan decimaler. som det är nu så delar jag cm med dpi och får då fram ett tal liknande 000,00000000 vill bara ha 000 utan ,00000000. talet = Round(cm / dpi,0) >Varför skulle man vilja göra om resultat till en sträng ? Om man som Alex "Håller på med ett projekt där antalet pixlar skall räknas ut från angivelser i dpi och cm." är det väl inte troligt att man vill visa resultatet som en sträng ? Det troliga är väl att man vill göra fortsatta beräkningar med delresultatet ? Woops !!! :-) å andra sidan tolkar jag number i citatet som "den siffertyp du skickade in" , men jag har ju å andra sidan inte originaltexterna här... "Variantnissen" här borta kan bara konstatera att nedanstående anrop returnerar en ruta där det står double. Angående Variants så var jag lika fientlig till dessa som Sven. Ja, om man nu varit en sån där nisse, men jag använder aldrig variants ! >Alex, är du snäll och klarmarkera den här tråden ? Ja ni... Jag har inte tagit del av er långrandiga diskution under de senaste 8 inläggen. Men kör på en egen teori enligt nedan: Emma har rätt. Jag skalll forska lite i det här med round och se hur jag skall tillämpad et i programmet. Formuläret har en Textruta för DPI, och en Textruta för Cm. Sedan skall Pixelantalet framträda i en Label. Om det bara är att skriva som i exemplet ovan så borde problemet vara löst...Decimal begränsning - VB
Håller på med ett projekt där antalet pixlar skall räknas ut från angivelser
i dpi och cm. Det ända som återstår är nu att slippa alla decimaler.Sv: Decimal begränsning - VB
innehåller decimaler. Du kan visa svar i cm med Format$(uträkning,"0.0")
Men!!! det är inte den lösning/svar du förväntar dig ! Se Spel o Grafik.Sv: Decimal begränsning - VB
Sv: Decimal begränsning - VB
eller heltalsdivision
talet = cm \ dpi
/JohanSv: Decimal begränsning - VB
Konstig fråga !
Om man vill visa ett resultat från en beräkning så gör man det med en sträng.
Dvs Dim Resultat As String. Du tillhör väl dom som använder Variant i alla läge.
Det är en styggelse och är ett av de stora missförhållande som Vb tillåter . Usch :-)
Du rekommenderade ju Round härovan. Round returnerar en Sträng.Sv: Decimal begränsning - VB
Round returnerar inte en sträng i VB.
Saxat ur MSDN som följer med vid installation
VB 6 :
Returns a number rounded to a specified number of decimal places.
VB.NET 2002 :
Returns a Double value containing the number nearest the specified value.
Slutligen, påhoppet om variant är helt utan grund och generaliseringar av det slaget behöver du inte ge uttryck för här.
/JohanSv: Decimal begränsning - VB
<VB 6 : Returns a number rounded to a specified number of decimal places.
Och! vad är det för DataTyp.? Tycker fortfarande att alla "Variantnissar" skall gå en kurs :-)
Finns väl ingen definierad DataTyp som heter "number" Eller ?
Man kan läsa MSDN som fa... läser bibeln. Läs på DataTyp så får du respekt.Sv: Decimal begränsning - VB
/EmmaSv: Decimal begränsning - VB
Men man är väl i princip överkörd igen...
<code>
MsgBox TypeName(Round(4/5,0))
</code>
Ett svar på hur man ska lösa det om man nu inte vill ha svaret som en sträng vore ju lämpligt, eller ?
/JohanSv: Decimal begränsning - VB
Detta på grund av c-bakgrund och en viss förtvivlan över den dåliga typkontrollen i c (som samtidigt är en av dess fördelar vid t.ex. hårdvarunära programmering med pekare hit och dit och hopp fram och tillbaka mellan assembler och c).
Jag trycker också i mina studenter som jag har emellanåt att det är en styggelse med variants.
MEN.....
En skola för programmering som jag stött på (minns inte namnet nu) bygger helt på variants och efter en del föreläsande av dess förespråkare måste jag medge att den har sitt berättigande i vissa speciella fall.
En viktig regel anser jag dock är: ANTINGEN Variants till allt och bara i speciella fall ELLER inga j-vla variants överhuvud taget. Blanda inte !!!
------
Det ser mycket bättre ut att skriva Object (som ju är nästan samma sak i VB6) ;-)
Då slipper man dessutom att kallas Variantnisse.
:)Sv: Decimal begränsning - VB
Alex, är du snäll och klarmarkera den här tråden ?
/JohanSv: Decimal begränsning - VB
Varför Varför skall han göra det ?
Märkliga översittarefasoner som talar om för andra när dom skall stänga sina trådar.
Är du likadan på ditt jobb så bevare dom för dessa översittarfasoner !!!
"Give the man enough rope , and he hang him self"Sv: Decimal begränsning - VB
Dim a As Integer
Dim b As Integer
a = CInt(txtDpiCm.Text) / "2,54"
lblPixW.Caption = CInt(txtCmW.Text) * a
b = CInt(txtDpiCm.Text) / "2,54"
lblPixH.Caption = CInt(txtCmH.Text) * b
Om det finns någon invändning så kan ni ju beskriva den lite mer detaljerat än åvan...
Annars skall ni ha tack ändå för de tankegångar som fick mig att komma fram till denna lösning...
/AlexSv: Decimal begränsning - VB
Round returnerar den datatyp man skickade in, vilket framgår av följande:
<CODE>
msgbox typename(round(12.0))
msgbox typename(round(12))
msgbox typename(round(cbyte(12)))
</CODE>
/PKSv: Decimal begränsning - VB
/Alex