Avatar billede speder2 Nybegynder
12. maj 2002 - 12:44 Der er 10 kommentarer og
2 løsninger

Datoer, afrunding

Her er jeg så igen.

*********Spg. 1************

Jeg henter et datofelt fra en database og udskriver det på en webside med følgende:

<%=(((valgtprojekt_data = valgtprojekt.getObject("dato"))==null || valgtprojekt.wasNull())?"":valgtprojekt_data)%>

Det giver noget som:

2002-04-30 00:00:00.0

Det vil jeg gerne udskrive i formatet dd-MM-yyyy, men hvordan?


*********Spg. 1*****************

Jeg har nogle udregninger som ser sådan ud:

float projektxtraomkvalue = ((Integer)projekt_data1).intValue();
float transaktxtraomkvalue = transaktion.getInt("xtraomk");
float procentvalue = transaktxtraomkvalue/projektxtraomkvalue*100;

Hvordan fjerner jeg decimaler fra procentvalue? Og hvordan kan jeg f.eks. vælge 2 decimaler?

Mange tak :-)

Søren
Avatar billede mercutio Nybegynder
12. maj 2002 - 15:10 #1
Du opretter et simple datoformat
SimpleDateFormat dinformat = new SimpleDateFormat("dd-MM-yyyy");
String dagsDato = dinformat.format(new Date());

Det var ihvertfald det første problem...
Avatar billede mercutio Nybegynder
12. maj 2002 - 15:12 #2
du vil nok gerne importere java.text.Dateformat og java.util.Date
Avatar billede mercutio Nybegynder
12. maj 2002 - 15:12 #3
Den anden halvdel kan jeg ikke hjælpe med detsværre.
Avatar billede disky Nybegynder
13. maj 2002 - 10:49 #4
mercutio:
brug
import java.util.*;
import java.text.*;
Istedet ingen grund til at explicit specificere de enkelte klasser.
Avatar billede speder2 Nybegynder
13. maj 2002 - 10:52 #5
Disky, kan du ikke klare spg. 2 omkring afrunding. Det handler jo bare om at konvertere en float til int - men jeg fatter simpelthen ikke formathåndteringen.
Avatar billede disky Nybegynder
13. maj 2002 - 11:07 #6
speeder2:
spg #2:
Jeg har lige smidt nogle dummy tal ind i dine variabler.

Men lidt tal rytteri kan gøre det, det kan nok gøres smartere men det her virker fint:
        float projektxtraomkvalue = 117;
        float transaktxtraomkvalue = 87.9992222f;
        float procentvalue = transaktxtraomkvalue/projektxtraomkvalue*100;

        System.out.println("Før = "+procentvalue);
        float t1=procentvalue-(procentvalue-(int)procentvalue);
        System.out.println("Fjernet decimal tal = "+t1);
       
        float t2=(procentvalue*100-(procentvalue*100-(int)(procentvalue*100)))/100;
        System.out.println("med 2 efter komma = "+t2);
Avatar billede mercutio Nybegynder
13. maj 2002 - 11:12 #7
Ok :-)
Avatar billede disky Nybegynder
13. maj 2002 - 11:17 #8
en lidt nemmere metode:
        float projektxtraomkvalue = 117;
        float transaktxtraomkvalue = 87.9992222f;
        float procentvalue = transaktxtraomkvalue/projektxtraomkvalue*100;

        System.out.println("Før = "+procentvalue);
        float t1=(float)((int)procentvalue);
        System.out.println("Fjernet decimal tal = "+t1);
       
        float t2=(float)((int)(procentvalue*100))/100;
        System.out.println("med 2 efter komma = "+t2);
Avatar billede disky Nybegynder
13. maj 2002 - 11:17 #9
skal den uden decimal være en int så er det bare:

int tal=(int)procentvalue;
Avatar billede disky Nybegynder
14. maj 2002 - 10:33 #10
speeder2:
Kunne du bruge det ?
Avatar billede speder2 Nybegynder
14. maj 2002 - 22:33 #11
Jeg var lige et smut i London - derfor det sene svar. Jeg har ikke lige testet det, men jeg gør det snarest. Det plejer at virke fra dig, så jeg uddeler sgu points nu :-)
Avatar billede disky Nybegynder
14. maj 2002 - 22:38 #12
hvis det ikke skulle virke skal du endeligt bare råbe højt.

De ovenstående eksempler er dog testet.
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