Bonjour à tous,
j'ai un soucis un peu particulier en ce sens où je n'ai pas trouvé de solutions à mes recherches.

Je dois calculer un prix d'une place de stationnement fonction d'une durée et du prix à l'heure de la palce de parking. Au résultat, j'ai ceci : "Please pay the parking fare:1.50000375". Ce que je souhaite faire c'est avoir 2 chiffres seulement après la virgules.
Là où est mon problème c'est que la méthode de calcul se fait via un setter/getter et des objets. Ci dessous mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
package com.parkit.parkingsystem.service;import java.text.DecimalFormat;
import com.parkit.parkingsystem.constants.Fare;
import com.parkit.parkingsystem.model.Ticket;
 
 
public class FareCalculatorService {
 
    public void calculateFare(Ticket ticket) {
 
           long duration = calculateTicketParkTime(ticket.getOutTime().getTime(), ticket.getInTime().getTime());    
 
           switch (ticket.getParkingSpot().getParkingType()){ // Attribue un type de place de parking (voiture ou vélo)
            case CAR: { // Dans le cas d'une voiture qui se gare
            	//Prend la durée de stationnement, multiplie par le prix du stationnement à l'heure (ici 1.5),
            	//puis la durée en millisecondes est convertit en minutes pour avoir le bon résultat.
                ticket.setPrice((duration * Fare.CAR_RATE_PER_HOUR)/(60*60*1000)); 
                break;
            }
            case BIKE: { // Dans le cas d'un vélo qui se gare
                ticket.setPrice((duration * Fare.BIKE_RATE_PER_HOUR)/(60*60*1000));               
                break;
            }
            default: throw new IllegalArgumentException("Unkown Parking Type");
 
 
        }
    }
    public long calculateTicketParkTime(long outHour, long inHour) {
 
    	// réadaptation du if de départ.
		if( (outHour == 0) || (outHour < inHour) ) {
            throw new IllegalArgumentException("Out time provided is incorrect:"+outHour);
        }
    	long duration = outHour - inHour;
		return duration;
J'aimerais stocker le résulat de ticket.setPrice((duration * Fare.CAR_RATE_PER_HOUR)/(60*60*1000)); par exemple et utiliser une méthode type DecimalFormat pour que j'obtienne juste 2 chiffres après la décimale. Mais je ne vois pas comment faire.
Je pourrais créer une méthode que je pourrai appeler dans mon switch mais là aussi je suis coincé..

Une idée ?
En vous remerciant