Hindari nomor MachinePrecision dalam Message

Oct 13 2020

Dapatkah saya mengubah keluaran dari Messagemenjadi tidak menunjukkan MachinePrecisionangka? Misalnya

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

Ini lumayan:

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

Ini bukan:

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

Apakah ada cara untuk Messagemenampilkan pembulatan ini sebagai:

xx
(* 0.21 *)

Jawaban

4 MichaelE2 Oct 13 2020 at 08:44

ToStringtampaknya membulatkan keluaran seperti yang biasanya dilakukan di sel keluaran (secara teknis OutputForm, yang tidak sama dengan "Output"gayanya):

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

Bleh :: test: test 0.21