Ich bin gerade dabei eine Methode anstatt einem double einen BigDecimal zu verwenden.
Gerundet soll werden nach:
RoundingMode.HALF_EVEN
Scale = 6
LocalDateTime tempDate = 2020-11-13T00:00;
Local updateDate = 2020-11-14T11:06;
int totalMonths = 3;
	
	
	
	
	
		
	
Habe folgendes probiert:
	
	
	
	
	
		
	
Herauskommen soll: 0.2540625 (laut double)
Rausbekommen tue ich aber: 0.024896
Anschließend würde ich gerne den oberen Wert von 1 abziehen also:
	
	
	
	
	
		
	
Womit dann 0.745937 rauskommen soll.
Jemand eine Idee, was ich falsch mache?
			
			Gerundet soll werden nach:
RoundingMode.HALF_EVEN
Scale = 6
LocalDateTime tempDate = 2020-11-13T00:00;
Local updateDate = 2020-11-14T11:06;
int totalMonths = 3;
		Java:
	
	long totalMinutes = Duration.between(tempDate, updateDate).toMillis() / 1000;
        long maxMinutes = YearMonth.of(tempDate.getYear(), tempDate.getMonthValue()).lengthOfMonth() * 24 * 60 * 60;
        result = (((double) totalMonths) / 12)
                + (((double) totalMinutes) / ((double) maxMinutes)
                        / 12));Habe folgendes probiert:
		Java:
	
	BigDecimal c1 = (new BigDecimal(totalMonths)).divide(new BigDecimal(12), 6, RoundingMode.HALF_EVEN);
BigDecimal c2 = new BigDecimal(totalMinutes).divide(new BigDecimal(maxMinutes), 6, RoundingMode.HALF_EVEN);
BigDecimal c3 = new BigDecimal(12);
       
BigDecimal test = ((c1).add(c2)).divide(c3, 6, RoundingMode.HALF_EVEN);Herauskommen soll: 0.2540625 (laut double)
Rausbekommen tue ich aber: 0.024896
Anschließend würde ich gerne den oberen Wert von 1 abziehen also:
		Java:
	
	double usedValue = Wert von oben;
result = 1-usedValue;Womit dann 0.745937 rauskommen soll.
Jemand eine Idee, was ich falsch mache?
 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		