2016-01-15 1 views
0

Je tente d'implémenter la fonction circulaire présente dans MatLab sans utiliser round ou roundn. C'est simplement une pratique pour une entrevue. Mon processus de réflexion était comme ça: je sais que j'aurais besoin d'utiliser les fonctions sol et plafond. J'ai pensé que je ne sauterais pas dans le code sans avoir les bases en premier, et voici donc ma pensée du prototype, fonction x = f (z, d), où z est le nombre à arrondir et d est le nombre de chiffres .Matlab Implémentation de la fonction ronde

+0

Quelle est votre question? –

Répondre

1

Ce type de problème peut souvent être résolu (peut-être trop souvent) par une solution intelligente. Ce problème peut par exemple être résolu en ajoutant le marginal au nombre et ensuite utiliser floor.

function y = myround(x, n) 
dec = (10^n); 
y = floor(x*dec+0.5); 
y = y/dec; 

Donc, si la décimale à la position n+1 est de 0,5 ou plus grand étage ajoutera un à la nième décimale.

EDIT

Cela peut être fait avec les 2 arguments round.

round(123.456,2) 

ans = 

123.4600