Langage :
Java
Date ajout :
21/02/2007
Posté par
cboulas
[
Liste]
DateMAJ :
21/02/2007
public double getArround(double d, int nDecimal) {
// Début Traitement
nDecimal += 2; // Ajout pour gestion du zéro et de la virgule avant les decimal
int primary = (int) d; // Récupération de l'entier précédent la virgule
d -= primary; // Séparation de l'entier précédent la virgule et celui qui la suit
String sDbl = Double.toString(d); // Conversion du résultat de la séparation en texte pour sélection de chaine
if (sDbl.length()>(nDecimal)) { // Si le nombre de caractère dans la chaine est supérieur au nombre de décimal...
d = Double.valueOf(sDbl.substring(nDecimal,nDecimal+1)).doubleValue(); // récupération du chiffre qui suit la dernière décimal souhaité
if (d >= 5) { // si ce chiffre est > à 5 alors ...
d=(Double.valueOf(sDbl.substring(2,nDecimal)).doubleValue() + 1)/100; // on ajout 1 à la dernière décimal souhaité et on divise par 100 pour faire l'addition
}
}
d += (double) primary; // on rassemble les deux morceaux pour formé le nouveau nombre
// Fin Traitement
return d; // Retourne la valeur
}
// Voire les autres surcharges disponible
double d = Math.Round(myNumber, myDigits);
MsgBox Round(10.123456789, 3)
float p10=Math.pow(10, n);
float r=((int)(f*p10))/p10;
Remarque :
n est le nombre de decimales, r le resultat, f le float a arrondir
en C, faut juste virer le Math. pour d'autres langages, comme le php, suffit de mettre un $ au nom des variables...
alert(Math.round(décimal ,nombre));
Langage :
VBA
Date ajout :
02/12/2007
Posté par
us_30
[
Liste]
DateMAJ :
10/11/2008
Public Enum ctArrondi
ParDefaut = -1
AuPlusPres
ParExces
End Enum
Function Arrondir(ByVal Nb As Double, ByVal Multiple As Double, Optional ByVal Sens As ctArrondi = AuPlusPres) As Double
Arrondir = IIf(Nb = Int(Nb / Multiple) * Multiple, Nb, Int(Nb / Multiple + (Sens + 1) / 2) * Multiple)
End Function
Remarque :
Cette fonction permet aussi d'arrondir à un multiple donnée, soit par défaut, au plus près ou par excès.
Exemple :
Arrondir(134.564,0.01) => 135.56 : arrondi classique
Arrondir(134.564,10,1) => 140 : arrondi par excès à un multiple de 10
La précision de l'arrondi est assurée jusqu'à 12 décimales.
Dim dRet As Double = Math.Round(33.33, 1)
MessageBox.Show(dRet.ToString)