Si un número se convierte en un número entero cuando lo racionaliza, utilice el número entero; de lo contrario, quédate con el número original. Esto se logra mediante una función simple, f[x]
:
f[x_] := If[IntegerQ[n = Rationalize[x]], n, x]
Probando ...
f[67.5]
f[0.]
f[45.]
(* Out *)
67.5
0
45
se puede simplemente Rationalize
todos los valores, como el siguiente: deja claro
Para ver cómo funciona en su caso, simplemente inserte (f/@)
en su código para reformatear los valores de salida de Range
:
[email protected][
Text[Style[
ToString[(f/@ Range[0, 180, 22.5])[[#]]] <> "\[Degree]",
Bold, 16, GrayLevel[(8 - #)/10]]] & /@ Range[8], 2, 1]
Así
Gracias, combinando con gaseosas, creo que N @ Rationalize @ any number debería hacerlo? – 500
@ 500 N @ Rationalize @ no lo resuelve del todo, porque 'N' deshace los resultados al convertir el entero (devuelto por' Rationalize') a un número real. P.ej. 'N [Rationalize [45.]]' Devuelve "45." como el resultado. –
DavidC
¡Que tú David! – 500