Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский
Aide de Scilab >> Fonctions Elémentaires > Virgule flottante > format

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 — determine floating-point parameters
  • string — conversion en chaîne de caractères
  • sci2exp — converts an expression to a string
  • disp — displays variables
  • print — prints variables in a file
  • clean — nettoie une matrice (arrondi à zéro des termes très petits)
  • C-like format — mprintf, msprintf, mfprintf conversion specifications
  • mprintf — converts, formats, and writes data to the main scilab window
  • msprintf — converts, formats, and writes data in a string
  • mfprintf — converts, formats, and writes data to a file

Historique

VersionDescription
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.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Feb 12 19:15:26 CET 2018