Avatar billede Slettet bruger
29. august 2002 - 05:03 Der er 18 kommentarer og
1 løsning

Afrunding af tal efter Kr.

Jeg er ved at lave et fakturesystem og skal kunde afrunde til nærmste 25 øre.

og nu hvor du er igang hvordan får jeg den til at skrive 0,50 og ikke bare 0,5..

Min kode ser sådan ud..

<table border="0" width="42%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">&nbsp;</td>
  </tr>
</table>
<table border="0" width="482" height="52">
  <tr>
    <td width="129" height="23">Dato</td>
    <td width="256" height="23">Beskrivlse</td>
    <td width="154" height="23">Beløb</td>
  </tr>
<%


Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:\web\penge\db1.mdb"

    Set RS = Conn.Execute("SELECT * FROM faktur WHERE (ref = '1')")
  Set total = conn.execute("SELECT SUM(Saldo) * 1.25 AS Sa FROM faktur WHERE (ref = '1')")

    Do Until rs.EOF

%>
  <tr>
    <td width="129" height="21"><%=rs("Dato")%></td>
    <td width="256" height="21"><%=rs("Titel")%></td>
    <td width="100" height="21" align="right"><%=rs("Saldo")%> KR.</td>
  </tr>
<%
    RS.MoveNext
Loop
%>
<tr>
    <td width="129" height="21"></td>
    <td width="256" height="21">Total</td>
    <td width="100" height="21" align="right"><b><%=total("Sa")%> KR.</b></td>
</tr>

</table>
Avatar billede davidfossil Nybegynder
29. august 2002 - 07:18 #1
er det <%=total("Sa")%> der skal laves om?

i så fald vil jeg skrive:
<%= round(total("Sa")*4,0)/4 %>
nu får du 1 eller 1,25 eller 1,5 eller 1,75 ect.
så vil du sikkert også have at der altid skal være 2 decimaler ... det bliver vel noget i stil med dette:
<%
saldo = round(total("Sa")*4,0)/4
IF saldo = round(saldo,0) THEN
    saldo = saldo & ",00"
ELSEIF saldo = round(saldo,1) THEN
    saldo = saldo & "0"
END IF
response.write(saldo)
%>
Avatar billede Slettet bruger
29. august 2002 - 07:36 #2
Err. Det virker ikke. den kan ikke lide
<%= round(total("Sa")*4,0)/4 %>
både føste og anden.
Avatar billede Slettet bruger
29. august 2002 - 08:16 #3
Fandt selv ud af hvordan jeg får dicemal på, men kan ikke finde ud af at få den til at give mig det i delt med 25 øre. så det ikke er 1544.20 men 1544.25
Avatar billede eagleeye Praktikant
29. august 2002 - 10:03 #4
Skal det ikke være kolonnen Saldo og ikke Sa ??

<%= round(total("Saldo")*4, 0)/4 %>
Avatar billede davidfossil Nybegynder
29. august 2002 - 10:39 #5
<%= round(total("Sa")*4,0)/4 %>

er det total("Sa") du skal have skrevet om ??
ellers skal du jo bare ændre det ... ?
Avatar billede Slettet bruger
29. august 2002 - 15:17 #6
Virker Ikke.

Min kode ser sådan ud..

<html>
<body>
<table border="0" width="42%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">&nbsp;</td>
  </tr>
</table>
<table border="1" width="482" height="52" bordercolor="#000000" cellspacing="0" cellpadding="0">
  <tr>
    <td width="129" height="23" bgcolor="#000000"><font color="#FFFFFF"><b>Dato</b></font></td>
    <td width="256" height="23" bgcolor="#000000"><font color="#FFFFFF"><b>Beskrivlse</b></font></td>
    <td width="154" height="23" bgcolor="#000000"><font color="#FFFFFF"><b>Beløb</b></font></td>
  </tr>
<%


Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:\web\penge\db1.mdb"

    Set RS = Conn.Execute("SELECT * FROM faktur WHERE (ref = '1')")
  Set total = conn.execute("SELECT SUM(Saldo) * 1.25 AS Sa FROM faktur WHERE (ref = '1')")

    Do Until rs.EOF

%>
  <tr>
    <td width="129" height="21"><%=rs("Dato")%></td>
    <td width="256" height="21"><%=rs("Titel")%></td>
     
    <td width="100" height="21" align="right">
      <p align="right"><%=Formatnumber(Round(rs("Saldo"), 2),2)%>  <font size="1">KR.</font></p>
    </td>
  </tr>
<%
    RS.MoveNext
Loop
%>
<tr>
    <td width="129" height="21" bgcolor="#000000"> </td>
    <td width="256" height="21" bgcolor="#000000"><font color="#FFFFFF">Total</font></td>
      <td width="100" height="21" align="right" bgcolor="#000000"><b><font size="2" color="#FF0000"><%=Formatnumber(Round(total("Sa"), 2),2) %> </font><font color="#FFFFFF" size="1"> KR.</font></b></td>

</table>
</body>

</html>
Avatar billede eagleeye Praktikant
30. august 2002 - 10:17 #7
Prøv at rette denne linie:
<%=Formatnumber(Round(total("Sa"), 2),2) %>

Til denne linie:

<%=Formatnumber(Round(total("Sa")*4, 0)/4, 2) %>
Avatar billede Slettet bruger
30. august 2002 - 11:56 #8
Virker heller ikke.
Avatar billede eagleeye Praktikant
30. august 2002 - 16:27 #9
Hvad sker andet end virker ikke ???
Avatar billede eagleeye Praktikant
30. august 2002 - 18:21 #10
Bruger du komma eller punktum som "komme"?  23.5 eller 23,5
Avatar billede Slettet bruger
01. september 2002 - 16:55 #11
jeg har prøve at sætte det ind men den giver fejl i den line.
jeg bruger , i min stykker.
Avatar billede eagleeye Praktikant
01. september 2002 - 17:02 #12
Så prøv at sætte denne linie ind i toppen ad koden:

<% Session.LCID = 1030 'Dansk format af dato,komma,valuta %>

og så brug denne:

<%=Formatnumber(Round(total("Sa")*4, 0)/4, 2) %>
Avatar billede Slettet bruger
02. september 2002 - 03:32 #13
Nej den giver fejl igen.

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typerne passer ikke sammen
/test.asp, line 41
Avatar billede eagleeye Praktikant
02. september 2002 - 22:07 #14
Så prøv uden <% Session.LCID = 1030 %>
I stedet for så udskift , med .

<%=Formatnumber(Round(Replace(total("Sa"),",",".")*4, 0)/4, 2) %>
Avatar billede Slettet bruger
03. september 2002 - 05:15 #15
Det virker, men den kan nu ikke regne som den skal

Se denne

html>
<body>
<table border="0" width="42%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%">&nbsp;</td>
  </tr>
</table>
<table border="1" width="482" height="52" bordercolor="#000000" cellspacing="0" cellpadding="0">
  <tr>
    <td width="129" height="23" bgcolor="#000000"><font color="#FFFFFF"><b>Dato</b></font></td>
    <td width="256" height="23" bgcolor="#000000"><font color="#FFFFFF"><b>Beskrivlse</b></font></td>
    <td width="154" height="23" bgcolor="#000000"><font color="#FFFFFF"><b>Beløb</b></font></td>
  </tr>

  <tr>
    <td width="129" height="21">29-08-2002</td>
    <td width="256" height="21">Administrationsgebyr</td>
     
    <td width="100" height="21" align="right">
      <p align="right">79,01  <font size="1">KR.</font></p>
    </td>
  </tr>

  <tr>
    <td width="129" height="21">29-08-2002</td>
    <td width="256" height="21">6 md, Webhottelleje</td>
     
    <td width="100" height="21" align="right">
      <p align="right">474,00  <font size="1">KR.</font></p>
    </td>
  </tr>

  <tr>
    <td width="129" height="21">29-08-2002</td>
    <td width="256" height="21">Oprattelsegebyr af domæne</td>
     
    <td width="100" height="21" align="right">
      <p align="right">250,00  <font size="1">KR.</font></p>
    </td>
  </tr>

<tr>
    <td width="129" height="21" bgcolor="#000000"> </td>
    <td width="256" height="21" bgcolor="#000000"><font color="#FFFFFF">Total</font></td>
      <td width="100" height="21" align="right" bgcolor="#000000"><b><font size="2" color="#FF0000">100.376,00 </font><font color="#FFFFFF" size="1"> KR.</font></b></td>

</table>
</body>

</html>
Avatar billede eagleeye Praktikant
03. september 2002 - 09:22 #16
hvad skulle det være???

Alternativt så kunne man lave en function som laver øre afrunding men den er ikke så pæn det fylder en del..



  ore = Right(ydelse_ialt, 2)
  If ore > 0 And ore < 25 Then
        If ore < 13 Then
            nedrund = ore
            tal = \"00\"
        Else
            oprund = 25 - ore
            tal = \"25\"
        End If
  ElseIf ore > 25 And ore < 50 Then
        If ore < 38 Then
            nedrund = ore - 25
            tal = \"25\"
        Else
            oprund = 50 - ore
            tal = \"50\"
        End If
  ElseIf ore > 50 And ore < 75 Then
        If ore < 63 Then
            nedrund = ore - 50
            tal = \"50\"
        Else
            oprund = 75 - ore
            tal = \"75\"
        End If
  ElseIf ore > 75 And ore < 100 Then
        If ore < 88 Then
            nedrund = ore - 75
            tal = \"75\"
        Else
            oprund = 100 - ore
            tal = \"00\"
            \' her skal der tages højde for at kr. skal forøges med 1
            krone = 1
        End If
  End If




Hvordan ser de tal ud du får fra databasen???

2.656,76
2656,76
Avatar billede Slettet bruger
10. september 2002 - 16:06 #17
Undskyld at jeg ikke har svar, men der har være så meget. kan du ikke fange mig på icq. 56665453
Avatar billede davidfossil Nybegynder
01. oktober 2002 - 22:35 #18
eagleeye : ydelse_ialt = round(ydelse_ialt*4,0)/4

^^ 19.67 bliver 19.75, 1.30 bliver 1.25 ect...
Avatar billede Slettet bruger
02. oktober 2002 - 02:26 #19
ok, tester det og giver svare tilbage. hvis du ikke høre nåde i længer tid så prøv at skrive et eller ande for så er det fordi jeg har glemt det..
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester