Hej! Du måste nog ha en egen funktion för det hela. "No big deal" men funktionen ovan är inte optimal man användet Int så Fixar det sig ;-) Hur skall negativa värden avrundas? Vid ytterligare eftertanke skulle jag göra då här. Problemet med int(tal) + 1 är den att 2.0 skulle bli 3.0 mmm... men varför inte subtrahera med 0.0000000001 så blir det 99.999 % rätt ;-)Avrundning uppåt
Hur gör jag för att altid avrunda ett tal uppåt. Håller på med en logisticlösning och måste ta fram kolli mm och då måste jag avrunda alltid uppåt
/TyronneSv: Avrundning uppåt
Något i stil med
<code>
Function Ceiling(ByVal value As Double) As Integer
If Int(value) < value Then
Ceiling = Int(value) + 1
Else
Ceiling = Int(value)
End If
End Function
</code>Sv:Avrundning uppåt
<code>
Option Explicit
Private Function FloatToIntPlus(ByVal float As Double) As Long
FloatToIntPlus = Int(float) + 1
End Function
</code>Sv: Avrundning uppåt
Här är ett enkelt alternativ:
Function Ceiling(value As Double) As Long
Ceiling = value + 0.5
End Function
Om inte jag misstar mig har VB något skumt för sig vad det gäller avrundningar. Så korrektheten hos denna funktion kräver ytterligare erfterforskning. Något jag inte åtar mig.
Sv:Avrundning uppåt
<code>
Option Explicit
Private Function FloatToIntPlus(ByVal float As Double) As Long
float = float - 0.0000001
FloatToIntPlus = Int(float) + 1
End Function
</code>Sv: Avrundning uppåt
så det som skrevs innan med en IF sats är korrekt
<code>
function ceiling(tal)
if int(tal) < tal then
ceiling = int(tal) + 1
else
ceiling = int(tal)
end function
</code>Sv:Avrundning uppåt