Unikaj numerów MachinePrecision w Message
Oct 13 2020
Czy mogę zmienić wyjście, Messageaby nie wyświetlało MachinePrecisionliczb? Na przykład
Bleh::test = "test `1`";
To jest tolerowane:
Message[Bleh::test, 0.01]
(* Bleh::test -- test 0.01` *)
To nie jest:
xx = 0.01;
Do[xx += 0.04, {5}]
Message[Bleh::test, xx]
(* Bleh::test -- test 0.21000000000000002` *)
Czy istnieje sposób na Messagewyświetlenie tego zaokrąglenia jako:
xx
(* 0.21 *)
Odpowiedzi
4 MichaelE2 Oct 13 2020 at 08:44
ToStringwydaje się zaokrąglać dane wyjściowe, jak zwykle robi się to w komórkach wyjściowych (technicznie w OutputForm, co nie jest tym samym, co "Output"styl):
xx = 0.01;
Do[xx += 0.04, {5}]
Message[Bleh::test, ToString@xx]
Bleh :: test: test 0,21