Convertir en nombre entier le plus proche - Pas d'arrondiSalut.
Étant nouveau sur JMP, je suis sûr que c'est une erreur typique du débutant.
J'ai besoin de convertir un nombre décimal en 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 colonne 2. 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 column1 et de la reconvertir en nombre (échoue).
Colonne1 est définie:
New Column( "Time",
Numeric,
Continuous,
Format( Best, 12),
);
La colonne 2 est définie:
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.
ScriptingRe: Convertir en nombre entier le plus proche - Pas d'arrondiVous pouvez utiliser les fonctions Sol () et Plafond ().
Re: Convertir en nombre entier le plus proche - Pas d'arrondiEn plus de @txnelson , voici le code pour cela:
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 en nombre entier le plus proche - Pas d'arrondiMerci, Georg et txnelson.
J'apprécie également le conseil de résolution de nom. 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 aux formules de table?
Merci!
Lawrence
Re: Convertir en nombre entier le plus proche - Pas d'arrondichère @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 de lignes différent.
Le résultat est,
- que la boucle prend dix fois plus de temps
- comme opération de table
- et le calcul de la matrice est 5x 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 pour éviter les boucles, s'il existe d'autres méthodes (table et matrice), qui ont des fonctionnalités intégrées pour adresser chaque élément.
Mais pour les petits scripts, et si les performances ne posent aucun problème, les boucles sont également acceptables. La lisibilité (aux yeux de l'écrivain) compte également.
