format configure le format par défaut d'affichage des nombres décimaux

## Syntaxe

                format(mode)
                format(width)
                format(mode, width)
                format(wm)
                mw = format()

## Paramètres

mode

  Type d'affichage :

  - 1 or "v": format variable auto-adaptatif (automatique) : pour chaque nombre décimal ou complexe à afficher, Scilab choisit soit la représentation directe (ex: -143.8757), soit le format scientifique avec exposant (ex: -1.438E+02) le plus adapté, permettant d'afficher un maximum de digits de la mantisse.
  - 0 or "e": force l'utilisation du format scientifique avec exposant, pour tous les nombres décimaux.
width

  largeur des nombres = nombre total de caractères utilisé pour chaque nombre, tout inclus : signe et digits de la mantisse, séparateur décimal ("."), symbole de l'exposant ("D", "E"), signe et digits de l'exposant. Par défaut, `width = 10`. En notation exponentielle (mode "e"), il faut `width >= 8`.

wm

  vecteur de 2 entiers configurant le format :

  `wm(1)` est la largeur des nombres

  `wm(2)` est le type du format : 0 pour `'e'` et 1 pour `'v'`

mw

  vecteur à 2 nombres retournés comme paramètres du format actif :

  - `mw(1)` représente le type du format : 0 pour `'e'` et 1 pour `'v'`
  - `mw(2)` est le nombre de caractères utilisés pour formater chaque nombre.

## Description

Pour les nombres complexes, chaque partie réelle et imaginaire décimale est formatée selon `format(..)`. La largeur totale d'un nombre complexe est par conséquent deux fois celle spécifiée par `format(..)` + 1 caractère (symbole "i").
Les entiers encodés ne sont jamais formatables/formatés selon la notation "e"xponentielle, même si ce format est forcé pour les nombres décimaux. Pour eux, le séparateur décimal "." est inutile et n'apparait pas. Cette absence permet de les distinguer des entiers décimaux, qui eux présentent un ".".
Le choix d'un format() large permet de faire apparaitre des digits au delà de la précision relative `%eps`. Ceux-ci sont alors mis à zéro.
Le format décimal fixé avec `format(..)` est un paramètre global : quel que soit le lieu où il est utilisé, il est ensuite appliqué partout dans Scilab et Xcos.

Dans les versions anciennes de Scilab, en format automatique "v", les éléments d'une matrice inférieurs à `%eps` fois la valeur maximum absolue de l'ensemble de ses éléments étaient formatés à "0". Ce n'est plus le cas : la fonction `clean` peut être utilisée pour fixer les digits de faible poids à 0.

## Exemples

    // format() n'est pas appliqué aux entiers encodés
    // -----------------------------------------------
    format("e",8)
    int32(2.^grand(3,5,"uin",0,30))

    // format() impacte l'affichage en console, disp(), string(), sci2exp(),...
    // ---------------------------------------------------------------------
    a = %pi; p = %pi + %z - %e*%z^2;
    format("v",10);
    a, p
    disp(a,p)
    string(a), string(p)
    [sci2exp(a) sci2exp(p)]

    format("e",15);
    a, p
    disp(a,p)
    string(a), string(p)
    [sci2exp(a) sci2exp(p)]
    format("v",10); // reset

    // format() configure le nombre de caractères. Le nombre de digits peut varier
    // -------------------------------------------
    format("v",10)
    %pi*1e-217, s = string(%pi*1e-217)
    length(s) // le caractère "manquant" est le signe "+" implicit

    // C'est utile pour afficher des matrices aux colonnes bien alignées et sans blancs
    [ -1.234 %pi*1e-10 %nan ; %e*1e137 -%inf 54312]

    // Avec Scilab 6.0, les digits au delà de %eps sont mis à zéro :
    format(22)
    %pi

    // format() a un impact global
    // ---------------------------
    function myfun()
        format("e",20)
    endfunction
    format("v", 10)
    disp(%pi)
    myfun()
    // Il agit partout, quel que soit le lieu où il a été utilisé en dernier
    disp(%pi)
    format("v",10) // reset

## Voir aussi

- numbers_properties
- string
- sci2exp
- disp
- print
- clean
- C-like format
- mprintf
- msprintf
- mfprintf

## Historique

6.0 Pour les format() (excessivement) longs, les digits affichés au delà de la précision numérique relative %eps apparaissent maintenant comme des zéros.