Les Snippets

Connexion

Arrondir à 0.5 près

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 18/07/2008 15:59:35 et initié par pysco68 [Liste]
Date de mise à jour : 07/09/2008 13:05:52
Vue : 3834
Catégorie(s) : Maths, Trucs & Astuces, Algorithme
Langages dispo pour ce code :
- PHP 3, PHP 4, PHP 5
- Delphi 5
- Javascript
- ActionScript Flash
- C, C++
- VB6, VBA



Langage : PHP 3 , PHP 4 , PHP 5
Date ajout : 18/07/2008
Posté par pysco68 [Liste]
$nombre = 1.17;
$arrondi = round($nombre * 2) / 2;
             /* 
Explications:
Bon ben, comme au CE/CM (ben ça fait loins maintenant ^^), mais de façon informatique, comment arrondir un chiffre à 0.5 près: 
round() arrondis soit à l'entier, soit au dixième,mais ce n'est pas forcément voulu... par la multiplication par deux on contourne l'arrondissement vers la bas, et on redivise par deux! exemple: 
- 1.21 x 2 = 2.42 -> round(2.42) = 2 -> 2 / 2 = 1 
- 1.28 x 2 = 2.56 -> round(2.56) = 3 -> 3 / 2 = 1.5 
- 1.69 x 2 = 3.38 -> round(3.38) = 3 -> 3 / 2 = 1.5 
- 1.78 x 2 = 3.56 -> round(3.56) = 4 -> 4 / 2 = 2 
Bon je m'arrête là =) j'espère que le petit bout de code sera utile à quelqu'un!
*/
 
Langage : Delphi 5
Date ajout : 21/07/2008
Posté par f0xi [Liste]
DateMAJ : 21/07/2008
var V, R : extended; // single, double, real
V := 3.14;
R := round(V*2)*0.5;

{
V = 0.000 a 0.250   |  R = 0.0
V = 0.251 a 0.750   |  R = 0.5
V = 0.751 a 1.000   |  R = 1.0
}

Remarque :
on peut diviser par 2 ou multiplier par 0.5 (50%) ceci est identique sauf que la multiplication par 0.5 sera un chouille plus performante que la division.
Langage : Javascript
Date ajout : 21/07/2008
Posté par f0xi [Liste]
DateMAJ : 21/07/2008
var v = 3.14;
var r = Math.round(i*2)*0.5;

// exemple :
for (i=0; i<=100; i+=5) {
  f = i / 100;
  r = Math.round(f * 2)*0.5;
  document.write(f + " = " + r + "</br>");
}
// affiche :
0    = 0
0.05 = 0
0.1  = 0
0.15 = 0
0.2  = 0
0.25 = 0.5
0.3  = 0.5
0.35 = 0.5
0.4  = 0.5
0.45 = 0.5
0.5  = 0.5
0.55 = 0.5
0.6  = 0.5
0.65 = 0.5
0.7  = 0.5
0.75 = 1
0.8  = 1
0.85 = 1
0.9  = 1
0.95 = 1
1    = 1

Langage : ActionScript Flash
Date ajout : 21/07/2008
Posté par f0xi [Liste]
DateMAJ : 21/07/2008
v = 3.14;
r = Math.round(v * 2) * 0.5;


Langage : C , C++
Date ajout : 05/09/2008
Posté par nicomilville [Liste]
DateMAJ : 07/09/2008

#include <math.h>

double round(double decimal) { 
     return floor(decimal * 2) / 2;
}


Langage : VB6 , VBA
Date ajout : 06/11/2008
Posté par jrivet [Liste]
^Dim i As Single
Dim Res As String
    For i = 0 To 1.1 Step 0.02
        Res = Res & CStr(i) & "->" & CStr(CInt(i * 2/ 2& vbNewLine
    Next i
    Call MsgBox(Res)
Remarque :
Bah on va faire la même chose en VBA/VB6 mais cela m'étonne que cela n'est pas déjà été fait!!! :)

Snippets en rapport avec : Arrondir, 0.5



Codes sources en rapport avec : Arrondir, 0.5

{Flash} GÉNÉRATEUR DE GRILLE ISO
Ce code permet de générer une grille iso. La longueur et la largeur de la grille corespondent a cel...

{Visual Basic, VB6, VB.NET, VB 2005} ENCADREMENTS ET APPROXIMATIONS
Ce code donne plusieurs fonctions semblables à Round de VB6. Plus précisément 4 fonctions sont disp...

{Visual Basic, VB6, VB.NET, VB 2005} VBA EXCEL : FONCTION ROUND POUR COMPATIBILITÉ EXCEL 97
Simple, très simple... mais encore nécessaire ?! La fonction SimpleRound a été créée sur le modèl...

{Delphi} ARRONDIR UN NOMBRE DÉCIMAL (FORMATFLOAT) - SAISIE VALIDE DE CE NOMBRE
Arrondir une valeur flottante, sans la virgule, avec x chiffres après la virgule, en notation scient...

{ASP / ASP.NET} ARRONDIR UN NOMBRE A 2 CHIFFRES APRES LA VIRGULE
...

{Visual Basic, VB6, VB.NET, VB 2005} ARRONDIR DES NOMBRES À UN CERTAIN NOMBRE DE DÉCIMALES
Utilisez la fonction format (mais mettez pas c: en argument ;) ...

{Visual Basic, VB6, VB.NET, VB 2005} ARRONDIR UN NOMBRE A 2 CHIFFRES APRES LA VIRGULE
...

{Visual Basic, VB6, VB.NET, VB 2005} ARRONDIR UN NOMBRE A 2 DECIMALES
Comment Faire pour arrondir un nombre aux centième ? Utilisez ce code :...