Hej! >Finns det en färdig funktion för detta? Det är nog lättare att skriva så här: Petter: Hej! Använd cint... ex. Hej Men herre gud pöjks. R-mus: Nix Nix gode R-Mus Ääää....sven släng dig i väggen =P. HejSom Int(), fast tvärt om...
Jag skulle vilja "avrunda" ett tal uppåt. Så fort talet är ett decimaltal, skall talet avrundas till talet över. Dvs talet 6,1=7 6,5=7 6,7=7
Finns det en färdig funktion för detta?
/Di Sv: Som Int(), fast tvärt om...
Tror inte det, men denna funktionen borde fixa det:
Function AvrundaUpp(a As Double) As Long
If Int(a) < a Then
AvrundaUpp = Int(a) + 1
Else
AvrundaUpp = a
End If
End Function
/JohanSv: Som Int(), fast tvärt om...
Function AvrundaUpp(a As Double) As Long
AvrundaUpp = Round(a + 0.49)
End Function
Det blir mindre kod så, men det är bara ett annat sätt att göra det på.
//PetterSv: Som Int(), fast tvärt om...
Det finns ett problem med din lösning, upplösningen är begränsad, det kommer alltid att finnas tal som avrundas fel. Om du t.ex. testar AvrundaUpp(1.001) så blir det fel med din lösning... Man kan givetvis ändra till 0.4999999999999999, men det finns ändå en gräns när det slutar att fungera och jag anser att man ska försöka bli av med så många sådana begränsningar som möjligt. I detta fallet kanske inte den typen av tal är aktuella, men om du använder samma funktion vid ett annat tillfälle kanske det inte blir så bra.
/JohanSv: Som Int(), fast tvärt om...
Q196652 i Microsofts knowledge base behandlar avrundningar.
Här är adressen.
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q196652&
/Mvh Sven-Olof
Sv: Som Int(), fast tvärt om...
cint(5.98)
det kommer returnera 6. Vill du kunna hantera tal större än 32000.. använd clng(tal).. funkar lika bra //JohanSv: Som Int(), fast tvärt om...
Ditt svar är felaktigt i förhållande till frågan.
Vad blir CInt(5.48) ?
undrar
SvenSv: Som Int(), fast tvärt om...
Det är väl bara att klämma in en split och kolla om arrayen har mer än 1 plats i såna fall tar man den första posten i arrayen och + med 1 annars inte, och så skriver man ut det i en textbox eller nåt.
Det där settet som togs upp senast funkar bra men inte till den uppgiften han ger // R-musSv: Som Int(), fast tvärt om...
Din lösning har en svaghet, den är beroende av vilket decimaltecken man har inställt på datorn.
/Johan
PS. Än så länge är det ingen som har hittat någon brist i min lösning, eller...? ;)Sv: Som Int(), fast tvärt om...
>Det är väl bara att klämma in en split
Det köper jag inte ,matematik skall lösas matematiskt.
SvenSv: Som Int(), fast tvärt om...
Det behövs ju inte, så varför ska man? kan räkna ut det mattematiskt om det är nåt att räkna på men varför med en så lätt grejj?
Du får väl anväda , och . som decimal tecken =P // R-musSv: Som Int(), fast tvärt om...
>Ääää....sven släng dig i väggen =P
Jameeen ! Jag är ju äldst ! Man säger inte emot äldre människor :-)
Ha det
Sven