Convertir au nombre entier le plus proche - Pas d'arrondiSalut.
Étant nouveau dans JMP, je suis sûr qu'il s'agit d'une erreur typique de débutant.
J'ai besoin de convertir un nombre décimal en un nombre entier sans arrondir.
Exemple 1 : La valeur 0,5986 est copiée de la colonne1 et enregistrée dans la colonne2. 0 doit être enregistré dans la colonne2. Au lieu de cela, 1 est enregistré.
Exemple 2 : La valeur 1,5986 est copiée de la colonne1 et enregistrée dans la colonne2. 1 doit être enregistré dans la colonne 2. Au lieu de cela, 2 est enregistré.
J'ai essayé d'utiliser Round(x, 0), mais le nombre est toujours arrondi.
J'ai également essayé de formater la valeur de la colonne1 et de la reconvertir en nombre (échec).
Column1 est défini :
New Column( "Time",
Numeric,
Continuous,
Format( Best, 12),
);
Column2 est défini :
New Column( "WholeSeconds",
Numeric,
Continuous,
Format( Fixed Dec, 5, 0),
);
Code:
For Each Row(
lvTime = dt:Time;
dt:WholeSeconds = Round( lvTime,0);
);
Toute aide est grandement appréciée.
Merci.
Organisation du contenuAccès aux donnéesFusion et nettoyage des donnéesPersonnalisation de masseIngénierie de la qualité et des procédésPartage et communication des résultatsRe : Convertir au nombre entier le plus proche - Pas d'arrondiCher @swanthog , dans un script, j'ai testé trois méthodes différentes pour calculer un carré y = x*x dans une table avec un nombre différent de lignes.
Le résultat est,
- que la boucle prend dix fois plus de temps
- comme opération de table
- et le calcul matriciel est 5 fois plus rapide que l'opération de table
Aussi en termes de code propre et moins d'erreurs, c'est à mon avis une bonne recommandation d'éviter les boucles, s'il existe d'autres méthodes (table et matrice), qui ont une fonctionnalité intégrée pour traiter chaque élément.
Mais pour les petits scripts, et si les performances ne posent aucun problème, les boucles conviennent également. Aussi la lisibilité (aux yeux de l'écrivain) compte.

Re : Convertir au nombre entier le plus proche - Pas d'arrondiMerci Georg et txnelson.
J'apprécie également le conseil de résolution de noms. Je ne l'avais pas encore rencontré dans la documentation.
Je suppose que la recommandation d'éviter les boucles est due à un impact négatif sur les performances. Est-ce correct? Quel est (en gros) l'impact/la différence sur les performances en utilisant des boucles par rapport à des formules de table ?
Merci!
Laurent
Re : Convertir au nombre entier le plus proche - Pas d'arrondiEn plus de @txnelson , voici le code correspondant :
Comme vous pouvez le voir, vous pouvez utiliser une formule ou écrire des valeurs dans cette colonne.
Il vaut mieux éviter les boucles (pour chaque ligne), si les tables peuvent s'en passer, si possible.
Names Default To Here( 1 );
cdt = New Table( "Example Floor",
add rows( 2 ),
New Column( "Time", Numeric, Continuous, Format( Best, 12 ), set values( [0.5986, 1.5986] ) ),
New Column( "WholeSeconds_formula", Numeric, Continuous, Format( Best, 12 ), Formula( Floor( :Time ) ) ),
New Column( "WholeSeconds_value", Numeric, Continuous, Format( Best, 12 ), set each value( Floor( :Time ) ) )
);

Re : Convertir au nombre entier le plus proche - Pas d'arrondiVous pouvez utiliser les fonctions Floor() et Ceiling().