Tanto per. .

Ti dico come la vedo io … :slight_smile:

Separerei il problema (per chi ci vede un problema :wink: ) in due:

  1. Che tipo di numeri stiamo esaminando
  2. Come ci mostra quei numeri GH

Prima questione:

Gia’ questo ci dice che i valori originali sono dei float,
e comunque essendo immagazzinati dentro un componente Number, anche i valori in uscita non possono essere altro che float.

Non confondere tipo di dato con valore numerico.
Un float puo’ avere benissimo un valore intero, e’ quello che di solito si scrive come:

50.0

Questo e’ un float e il suo valore e’ 50, ma resta comunque un float.
Tu che usi gli script sai bene cosa sia un tipo di dati e quanto sia importante nella programmazione.
Qui il tipo di dati e’ float e certamente non cambia di sua iniziativa. :wink:

Ci aveva gia’ spiegato tutto il nostro amico Inno:

Inoltre, trattandosi di coordinate, non c’e’ nessuna garanzia che il valore sia un numero intero.
( Se non hai appena settato tu i valori direttamente da RhinoCommon o cose simili … :wink: )
Quindi nella nostra lista potremmo avere dei valori, diciamo 50.000000 come anche dei valori 50.000001 o 49.999999 o molti altri valori diversi.

Seconda questione:

Se al componente Number attacchiamo un Panel, GH ci mostra un output costruito in un certo modo.
A quanto pare (nostra supposizione), quando lui trova un float con valore intero (come 50.000000),
lo scrive senza la parte decimale (che vale zero ovviamente).
Se invece trova un float che vale qualcosa come 50 .0000000001 o 49.999999999 (cioe’ non esattamente 50, ma molto vicino), lui lo scrive come “50.0” oppure come “5.0e+01” o una cosa simile, suppongo per indicare che non ha un valore intero.

Questa scelta naturalmente ha la sua logica, e mi sembra ‘in linea’ con altri comportamenti di GH, come quello di convertire i dati in silenzio quando puo’, diciamo usare dei “coerce” liberamente, un po’ come fa rhinoscriptsyntax.
Credo che l’idea sia quella di risparmiare tempo e spazio, a costo di rendere la logica della definizione un poco piu’ ostica da seguire in alcuni casi.
Ma penso che per GH, come per Rhino, sia richiesto un certo livello di esperienza specifica per poter utilizzare bene il software.
Se ci sono dubbi, c’e’ il forum … infatti siamo qui ! :wink: :grinning_face_with_smiling_eyes:

Nel fatto che editando i valori nel componente Number via Set Multiple Numbers, i valori stessi possano cambiare non vedo niente di strano.
Se tu lanci quella operazione, il componente ricavera’ i suoi nuovi numeri dal testo inserito.
Il fatto che tu aggiunga solo un newline e’ irrilevante. Se editi il testo, GH per forza deve andare a leggersi quel testo per ricavare da quel testo i nuovi numeri, non ci sono alternative.
E nella finestra di input i numeri preesistenti sono scritti come ‘50’, quindi lui legge dei valori 50.000000.
Se anche fossero stati scritti come “50.0” non cambiava nulla ovviamente.

In effetti l’unica cosa che a prima vista puo’ lasciare un po’ perplessi e’ proprio che lo stesso numero sia scritto “50” nella finestra di input di Number, ma sia scritto “50.0” nel Panel, ma pensandoci su direi che anche questo ha senso.
Nel componente Number scrivere “50” o “50.0”, come accennato sopra, non fa differenza perche’ il testo serve per l’input dei numeri e il numero ricavato dall’input e’ lo stesso in entrambi i casi.
Mentre nel Panel quel “50,0” ti da’ una informazione in piu’: ti dice che quel numero non ha un valore esattamente intero.
Number e’ un componente per l’input.
Panel e’ un componente per l’output.
:grinning:

Crazy-Test3.gh (7,7 KB)

1 Mi Piace