![]() |
| Arrondir à la n-ième décimale? | |
| François | 2-Mar-2011/13:19:47+1:00 |
| Bonjour, Une question toute bête, mais comment puis-je arrondir un nombre à la n-ième décimale? Ex: 1.26558 --> 1.266 ? François | |
| François | 2-Mar-2011/13:27:21+1:00 |
Je me répond à moi-mêmen-round: func [ value [number!] n [integer!] /local power-10 ] [ value: round multiply value power-10: power 10 n divide value power-10 ] | |
| Philippe | 2-Mar-2011/14:01:28+1:00 |
| Salut, Deux variantes : arrondi: func [ renvoit l'arrondi en fonction du nbre de decimales [catch] val [number!] "valeur a arrondir" /dec dec_num [integer!] "nbre de decimales" ][ throw-on-error [ dec_num: either none? dec_num [1] [10 ** dec_num] val: dec_num * val val: val + either positive? val [0.5][-0.5] val: val - (val // 1) val / dec_num ] ] ; autre forme de n-round n-round: func [ value [number!] /n num-dec [integer!] /local power-10 ] [ value: round multiply value power-10: either n [power 10 num-dec][1] divide value power-10 ] Il y a peut-être un moyen de mettre le nombre de decimales dans le path de la fonction : n-round/2 1.26558 . ===Philippe | |
| coccinelle | 2-Mar-2011/16:48:54+1:00 |
Et pourquoi ne pas un tuliser bêtement la fonction round ???...
>> help round
USAGE:
ROUND n /even /down /half-down /floor /ceiling /half-ceiling /to scale
DESCRIPTION:
Returns the nearest integer. Halves round up (away from zero) by default.
ROUND is a function value.
ARGUMENTS:
n -- The value to round (Type: number money time)
REFINEMENTS:
/even -- Halves round toward even results
/down -- Round toward zero, ignoring discarded digits. (truncate)
/half-down -- Halves round toward zero
/floor -- Round in negative direction
/ceiling -- Round in positive direction
/half-ceiling -- Halves round in positive direction
/to -- Return the nearest multiple of the scale parameter
scale -- Must be a non-zero value (Type: number money time)
(SPECIAL ATTRIBUTES)
catch
>> round/to 1.26558 0.001
== 1.266
| |
| François | 2-Mar-2011/16:56:19+1:00 |
| Hooo.... J'avais pas capté la signification du raffinement /to Merci Marco | |
|
Login required to Post. | |