runde.m

function y = runde(x, n)
% rundet x auf n Dezimalstellen
e10n = 10^(n-1);
s = sign(x);
x = abs(x);
e10 = 10.^(floor(log10(x)));
m10 = x./e10;
m10 = myround(m10*e10n)/e10n;
y = s.*m10.*e10;

y(find(isnan(y))) = 0;   % NaN bei 0-Werten durch 0 ersetzen

%--------------------------------------------------------------------
function y = myround(x)
% Ersatz für Matlab's round mit "round to even"

y = round(x);   % normales Runden

idx = find((abs(y - x - 0.5)./abs(y) < 1e-10) & (mod(y, 2) == 1));
y(idx) = y(idx) - 1;