Se un numero diventa un numero intero quando lo si razionalizza, utilizzare il numero intero; altrimenti rimani con il numero originale. Questo risultato è ottenuto da una funzione semplice, f[x]
:
f[x_] := If[IntegerQ[n = Rationalize[x]], n, x]
Testing ...
f[67.5]
f[0.]
f[45.]
(* Out *)
67.5
0
45
non si può semplicemente Rationalize
tutti i valori, come il seguente chiarisce:
Per vedere come funziona nel tuo caso, inserisci il codice (f/@)
nel tuo codice per riformattare i valori in uscita da Range
:
[email protected][
Text[Style[
ToString[(f/@ Range[0, 180, 22.5])[[#]]] <> "\[Degree]",
Bold, 16, GrayLevel[(8 - #)/10]]] & /@ Range[8], 2, 1]
Così
Grazie, combinando con bibite credo che N @ Rationalize @ qualsiasi numero dovrebbe farlo? – 500
@ 500 N @ Rationalize @ non risolve il problema, perché 'N' annulla i risultati convertendo il numero intero (restituito da' Rationalize') su un numero reale! Per esempio. 'N [Razionalizza [45.]]' Restituisce "45." come risultato. –
DavidC
Di te David! – 500