// JavaScript Document

function runden(val, precision) {
	if (precision < 0) { return NaN; }
	if (isNaN(val)) { return NaN; }
	var aufrunden = 0; h = 0;
	var ergebnis = 0.0;
	var c = '';
	var strval = val.toString();
	var strerg = "";
	var arr = new Array();
	arr = strval.split(".");
	var l = arr[1].length-1;
	
	for(i = l; i >= precision; i--) {
		c = arr[1].slice(i, i+1);
		arr[1] = arr[1].substring(0, i);
		h = eval(c)+aufrunden;
		if (h > 4) { aufrunden = 1; }
		else { aufrunden = 0; }
	}
	
	if (precision == 0) { 
		ergebnis = eval(arr[0]) + aufrunden; 
	} else { 
		c = arr[1].slice(i, i+1);
		arr[1] = arr[1].substring(0, i);
		h = eval(c) + aufrunden;
		if (h > 4) { aufrunden = 1; }
		else { aufrunden = 0; }
		while ((h == 10) && (i > 0)) {
			c = arr[1].slice(--i, i+1);
			arr[1] = arr[1].substring(0, i);
			h = eval(c) + aufrunden;
		}
		c = h.toString();
		if (h == 10) { 
			arr[0] = eval(arr[0]) + aufrunden;
			arr[1] = "0"; 
			for(k = 1; k < precision; k++) {
				arr[1] += "0"; 
			}
		} else { 
			arr[1] = arr[1] + c; 
			for(k = arr[1].length; k < precision; k++) {
				arr[1] += "0"; 
			}
		}
		strerg = arr[0] + "." + arr[1];
		ergebnis = strerg;
	}
	return ergebnis;
}