Éviter les numéros MachinePrecision dans le message

Oct 13 2020

Puis-je modifier la sortie de Messagepour ne pas afficher les MachinePrecisionnombres? Par exemple

Bleh::test = "test `1`";

Ceci est tolérable:

Message[Bleh::test, 0.01]
(* Bleh::test -- test 0.01` *)

Ce n'est pas:

xx = 0.01;
Do[xx += 0.04, {5}]
Message[Bleh::test, xx]
(* Bleh::test -- test 0.21000000000000002` *)

Existe-t-il un moyen Messaged'afficher cet arrondi comme suit:

xx
(* 0.21 *)

Réponses

4 MichaelE2 Oct 13 2020 at 08:44

ToStringsemble arrondir la sortie comme cela se fait habituellement dans les cellules de sortie (techniquement OutputForm, ce qui n'est pas le même que le "Output"style):

xx = 0.01;
Do[xx += 0.04, {5}]
Message[Bleh::test, ToString@xx]

Bleh :: test: test 0,21