• [^] # bc

    Posté par . En réponse au journal Calculatrice : matériel et logiciel ouverts ?. Évalué à 2.

    Effectivement. J’avais cherché hex dans le man, je n’avais pas pensé que bc soit sophistiqué au point de supporter des bases arbitraires, alors que sans l’option -l, il donne juste des résultats faux :

    $ bc
    bc 1.06.95
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    3*2/2
    3
    3/2*2
    2
    1.5*2
    3.0
    1.6*2
    3.2
    1.5*2/2
    1
    1.5/2*2
    0
    

    Ce n’est même pas du calcul en entiers, puisqu’il accepte des nombres décimaux en entrée, c’est la division qui semble être euclidienne. Je veux bien que ce soit indiqué « with ABSOLUTELY NO WARRANTY », mais quand même... Le man est particulièrement abscons là-dessus aussi (je vous invite à le lire, c’est quasiment un exercice de style sur la façon de ne pas donner l’information la plus importante).
    Bon, pour ceux qui n’aiment pas les devinettes, l’information, c’est « scale defines how some operations use digits after the decimal point. The default value of scale is 0. »

    $ bc -l
    bc 1.06.95
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    scale
    20
    10^-20
    .00000000000000000001
    10^-21
    0
    $ bc
    bc 1.06.95
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    scale
    0
    10^-20
    0
    scale=20
    10^-20
    .00000000000000000001
    10^-21
    0
    scale=21
    10^-21
    .000000000000000000001
    scale=0
    0.1
    .1
    10^-1
    0
    0.1*0.2
    0
    0.01*2
    .02
    

    Étonnant, non ?
    Bref, j’éviterais de m’en servir pour des calculs scientifiques un peu importants...

    « Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone