package javacodebook.core.round;

import java.math.BigDecimal;
/**
 *
 * @author  Mark Donnermeyer
 */
public class RoundStarter {
    
    public static void main(String []args)
    {
        // Java schneidet Nachommastellen beim Cast ab.
        System.out.println("Casting von Zahlen");
        int a = (int)1.999;
        int b = (int)-1.9999;
        System.out.println(a);
        System.out.println(b);
        
        // Durch addieren von 1/2 wird richtig gerundet
        System.out.println("Runden selbstgemacht");
        a = (int)(1.4+0.5);
        b = (int)(1.5+0.5);
        System.out.println(a);
        System.out.println(b);
        
        // Runden über Funktionen der Klasse Math
        System.out.println("Runden mit java.lang.Math()");
        double val = -2.25d;
        System.out.println("Zahl\tround\trint\tceil\tfloor\tCast");
        while (val < 2.5d)
        {
            System.out.print(val);
            System.out.print("\t" + Math.round(val));
            System.out.print("\t" + Math.rint(val));
            System.out.print("\t" + Math.ceil(val));
            System.out.print("\t" + Math.floor(val));
            System.out.println("\t" + (int)val);
            val += 0.25d;
        }
        
        // Runden von Geldbeträgen auf 2 Stellen hinter dem Komma
        System.out.println("Runden mit java.math.BigDecimal()");
        BigDecimal amount = new BigDecimal(5.4574324d);
        amount = amount.setScale(2, BigDecimal.ROUND_HALF_UP);
        System.out.println(amount);
    }
    
}
