JSL-Feature oder Bug?Ich habe eine Funktion, die darauf angewiesen ist, zu wissen, ob eine Teilzeichenfolge einer größeren Zeichenfolge eine Zahl darstellt oder nicht, und ich verwende einfach das Ergebnis des Befehls Num() - wenn es einen fehlenden Wert zurückgibt, gehe ich davon aus, dass die Teilzeichenfolge keine Zahl darstellt .
Ein Benutzer wies jedoch auf einen Fehler hin, der die Tatsache hatte, dass der Num()-Befehl vollkommen zufrieden mit jeder Zahl ist, der das wörtliche „R“ vorangestellt ist.
Ist das jemandem als Feature oder Bug bekannt?Ich habe versucht, im Skriptindex zu suchen, kann mir aber keine gut gestellte Abfrage dafür vorstellen.
Danke!
Print( Num( "R404" ) );
Print( Num( "R123.456" ) );
Print( Num( "r99" ) );
/*
404
123.456
.
*/
SkripterstellungBetreff: JSL-Feature oder Bug?Währung vielleicht. Viele seltsame Fälle, auf die Sie achten sollten ...
num("$5")
5
num("1jan2000")
3029529600
num("5%")
0,05
asdate(num("1/1"))
01.01.2001
Betreff: JSL-Feature oder Bug?Mir ist klar, dass es viele Fälle gibt, auf die man achten muss - aber speziell muss ich mich nur um Standardzeichen kümmern, und "R" ist hier das einzige Beispiel.In jeder anderen Programmiersprache wäre dies gut dokumentiert oder würde als Fehler angesehen werden (jedes Verhalten, das nicht explizit in der Dokumentation aufgeführt ist, ist ein Fehler), aber JMP befindet sich nicht auf dieser Ebene der Dokumentation, also ist es wahrscheinlich nur eine versteckte Funktion.
Betreff: JSL-Feature oder Bug?Währung scheint wahrscheinlich, aber ich kann nicht wirklich sagen, ob dies ein Feature ist, wenn ja, braucht es sicherlich eine bessere Dokumentation an verschiedenen Stellen.Wenn Sie bereits eine Vorstellung davon haben, was die Nummer ist sollen Es sieht so aus, als ob Sie vielleicht besser dran sind, Ihre eigene Validierungsfunktion für diese Daten zu schreiben, aber ich finde, dass Dinge wie '1/1' daran gehindert werden, als 1. Januar interpretiert zu werden. Dies wird natürlich schwieriger, wenn Sie mit mehreren Sprachen zu tun haben.
num_validated = function({v}, {r=.},
if( //Make sure anything with odd characters is missing
is missing(regex(v,"^[0-9\.\,]+$")),
r = .,
//try to interpret everything else using 'num':
r = num( v );
);
r;
);
show(
num_validated("1"),
num_validated("1.0"),
num_validated("R1"),
num_validated("1,000")
);Betreff: JSL-Feature oder Bug?Ich habe eine Nachricht an die Dokumentations- und Entwicklungsteams von JMP gesendet. Danke!
Betreff: JSL-Feature oder Bug?Grüße alle. Es sieht so aus, als ob an diesem Problem im Zeitrahmen von JMP 17 gearbeitet wurde. Insbesondere wurde Num() und Informat() ein zusätzliches Argument hinzugefügt, damit Sie steuern können, was als gültige Zahl betrachtet wird. Alle Benutzer von JMP 17 EA7 (oder höher) können dies jetzt ausprobieren; andere müssen warten, bis JMP 17 im Herbst 2022 verfügbar ist. Danke, dass du das gemeldet hast! Wir überwachen diese Foren und versuchen, solche Dinge nach Möglichkeit zu beheben.
Betreff: JSL-Feature oder Bug?@Audrey_Shull
Ich hatte ein Problem mit einer als Zeichen importierten Spalte.
Ich konnte mit dem Auge nichts sehen, was nicht numerisch war.
Aber als es zu einem numerischen Wert wurde, verschwanden die meisten Werte. (mit JMP 16.2 Pro)
Aber mit JMP 17EA konnte ich sofort von Zeichen in Zahlen umwandeln, ohne dass Werte verschwanden.
Da gab es also einige Fortschritte.
Ich hoffe, das hilft!
Ben