Mesajda MachinePrecision numaralarından kaçının

Oct 13 2020

Sayıları Messagegöstermemek için çıktısını değiştirebilir miyim MachinePrecision? Örneğin

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

Bu tolere edilebilir:

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

Bu değil:

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

MessageBunu yuvarlayarak göstermenin bir yolu var mı :

xx
(* 0.21 *)

Yanıtlar

4 MichaelE2 Oct 13 2020 at 08:44

ToStringçıktıyı genellikle çıktı hücrelerinde yapıldığı gibi yuvarlıyor gibi görünüyor (teknik OutputFormolarak, "Output"stil ile aynı değil ):

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

Bleh :: test: test 0.21