Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Öresutjämning.

Postades av 2004-01-09 13:40:18 - Niqué Eriksson, i forum asp - allmänt, Tråden har 6 Kommentarer och lästs av 1339 personer

Hej hopp hallå!

Något så enkelt (trodde jag innan) som att avrunda ett tal till närmsta 50-öring visade sej inte vara så enkelt.

Jag kom på den här, fungerande, lösningen:

<code>
' Utjämnings regler enligt Svenska Posten.
' 0.00 kr - 0.24 kr = 0.00 kr
' 0.25 kr - 0.74 kr = 0.50 kr
' 0.75 kr - 0.99 kr = 1.00 kr

vValue = 234.23 ' Det tal vi vill utjämna/avrunda.

vOre = Mid(Cstr(vValue),InStr(Cstr(vValue),","),3) ' Plocka ut örena.
vTal = Left(Cstr(vValue),(InStr(Cstr(vValue),",")-1)) ' Plocka ut heltalet.

' Eftersom allt mellan 0.00 kr och 0.24 kr blir 0.00 kr så behöver vi inte
' bry oss om den biten.

If vOre => 0.25 And vOre < 0.75 Then
vAdd = 0.5 ' Örena ska bli 50 öre.
ElseIf vOre => 0.75 Then
vAdd = 1 ' Örena ska bli 1 krona.
End If

vTal = vTal + vAdd ' Addera 50 öre eller 1 kronan till heltalet.

' Formatera värdena som Currency och pressentera dom.
cValue = FormatCurrency(vValue) ' Innan avrundning/utjämning.
cUtj = FormatCurrency(vTal - vValue) ' Hur mycket vi avrundat med. (-/+)
cTal = FormatCurrency(vTal) ' Efter avrundning.

Response.Write("<pre>Initialt tal : " & cValue & "<BR>")
Response.Write("Utjämning : " & cUtj & "<BR>")
Response.Write("Resultat : " & cTal & "</pre>")
</code>

Jag vet inte, men det känns konstigt att behöva göra så här, finns det något enklare sätt?

Thanx!




Svara

Sv: Öresutjämning.

Postades av 2004-01-09 14:06:52 - Per Hultqvist

Jag skulle nog ha gjort så här i stället :
<code>
vValue = 234.55 ' Det tal vi vill utjämna/avrunda.

vTal = Int(vValue)
vOre = vValue - vTal
If vOre >= 0.25 And vOre < 0.75 Then
vOre = 0.5 ' Örena ska bli 50 öre.
ElseIf vOre >= 0.75 Then
vOre = 1 ' Örena ska bli 1 krona.
Else
vOre = 0
End If
vTal = vTal + vOre
</code>
Även om stränghanteringen fungerar så känns ovanstående mer naturligt eftersom man slipper konvertera fram och tillbaka mellan strängar och tal.


Svara

Sv: Öresutjämning.

Postades av 2004-01-11 14:03:03 - Niqué Eriksson

Tack 'Hultan'!

Det var det ja kände va fel oxå..




Svara

Sv: Öresutjämning.

Postades av 2004-01-11 17:50:39 - Pontus Wång

Här är en funktion som borde fungera perfekt som inte är lika stor som din:

<code>
'anrop;
Response.Write OreUtjamning(24.23) ' ger 24.00
Response.Write OreUtjamning(24.43) ' ger 24.50
Response.Write OreUtjamning(24.83) ' ger 25.00


function OreUtjamning(kr) ' as currency
dim ore 'as double
' Räkna fram antal ören, (kr - heltalsdelen av kr)
ore = kr - clng(kr)
' är det mindre än 25 öre i skillnad, så ska det avrundas neråt
if ore < 0.25 then
OreUtjamning = clng(kr)
' är det 75 öre eller mer i skillnad ska vi avrunda uppåt till närmsta nästa krona
elseif ore >= 0.75 then
OreUtjamning = clng(kr) + 1
' i alla andra fall är det x kronor och femtio öre som gäller
else
OreUtjamning = clng(kr) + .5
endif
end function
</code>

*Edit*
Såg nu att den var likadan som Hultans :-/ men bättre kommenterad :-)


Svara

Sv: Öresutjämning.

Postades av 2004-01-12 21:53:24 - Niqué Eriksson

Tack alla!

Nu tycker ja det funkar acceptabelt iaf.


Svara

Sv: Öresutjämning.

Postades av 2004-01-12 22:19:53 - Niklas Jansson

Borde inte
Int(2*x+0.5)/2
vara mindre och lättare?


Svara

Sv: Öresutjämning.

Postades av 2004-01-13 15:25:33 - Niqué Eriksson

TOPPEN!! =o)

<code>
<%
vValue = 234.75
vUt = Int(2 * vValue + 0.5) / 2
vDiff = vUt - vValue

cValue = FormatCurrency(vValue)
cUt = FormatCurrency(vUt)
cDiff = FormatCurrency(vDiff)

Response.Write("IN : " & cValue & "<BR>" & "UT : " & cUt & "<BR>" & "DIFF : " & cDiff)
%>
</code>


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 791
27 960
271 761
6 000
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies