07. oktober 2004 - 10:04Der er
2 kommentarer og 1 løsning
Afrunding af værdi på formular
Min formular opdaterer nogle felter i en tabel (og på selve formularen), hver gang der klikkes på Registrer-knappen. Samme formular har også en Slet-knap. De data der opdateres er f.eks. en vægt, som f.eks. 22,792 (kg). Hvis der klikes 10 gange på Registrer og derefter 10 gange på slet, vil der i vægt-feltet så en meget lille værdi, eksempelvis 3.18E-12. Det er jeg ikke interesseret i at brugeren ser, der skal afrundes til nærmeste 2-3 decimaler (i dette tilfælde altså et rent 0) Hvordan gør jeg det? Troede det var nok at sætte formatet til Tal og Antal decimaler = 2
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Problemet skyldes sikkert PC'ens velkendte floating-point-problematik, hvor den ikke regner særlig præcist på alm. reelle tal.
Hvis du har mulighed for at skifte datatype til Decimal fungere det bedre. (hvis du benytter en variabel i VBA til mellemregninger, skal den have datatypen Variant, da Decimal ikke findes som VBA-datatype)
Eller.... du kan benytte denne funktion til at afrunde (som du selv forespørger):
Public Function Afrundtal(Tal As Single, Optional Nærmeste As Single = 1, Optional RundOp As Boolean = False) As Variant Dim tmp As Single Select Case Nærmeste Case 1 tmp = Int(Tal + IIf(RundOp = True, 1, 0.5)) Case Else tmp = Int(Tal / Nærmeste + IIf(RundOp = True, 1, 0.5)) * Nærmeste End Select Afrundtal = tmp End Function
Den benyttes således: Afrundtal(43.1234, 0.01) resultat: 43.12
nåå, jeg troede, at du havde afprøvet format-metoderne. Problemet med format er jo, at der rent faktisk stadig står 3.18E-12 i feltet, selvom brugeren ikke ser det umiddelbart. Hvis han klikker i feltet, vil han se at der ikke står 0 men et andet tal. OG hvis du regner videre på det eller spørger på om det er nul, vil du få et forkert resultat.
Anyway, tak for point alligevel :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.