JSL 功能還是錯誤?我有一個函數,它依賴於了解較大字串的子字串是否代表數字,我只需使用 Num() 命令的結果 - 如果它返回缺失值,我假設該子字串不代表數字。
然而,一位用戶指出了一個錯誤,其根本原因是 Num() 命令對前面帶有文字「R」的任何數字都非常滿意。
有人知道這是功能還是錯誤嗎?我嘗試查看腳本索引,但無法想到合適的查詢。
謝謝!
Print( Num( "R404" ) );
Print( Num( "R123.456" ) );
Print( Num( "r99" ) );
/*
404
123.456
.
*/
自動化和腳本編寫回覆:JSL 功能還是錯誤?@奧黛麗_舒爾
我在將列匯入為字元時遇到問題。
我肉眼看不到任何非數字的東西。
但當將其設為數字時,大多數值都消失了。 (使用 JMP 16.2 Pro)
但使用 JMP 17EA,我可以直接從字元轉換為數字,而不會導致值消失。
所以那裡取得了一些進展。
希望有幫助!
本
回覆:JSL 功能還是錯誤?大家好。 看起來 JMP 17 時間範圍內已經針對此問題完成了一些工作。 具體來說,Num() 和 Informat() 中添加了一個附加參數,以幫助您控制有效數字。 任何 JMP 17 EA7(或更高版本)用戶現在都可以嘗試此操作;其他人則需要等到 JMP 17 於 2022 年秋季推出。 感謝您回報此事! 我們確實會監控這些論壇,並希望盡可能修復此類問題。
回覆:JSL 功能還是錯誤?我向 JMP 的文檔和開發團隊發送了一則說明。 謝謝!
回覆:JSL 功能還是錯誤?貨幣似乎確實有可能,但我無法真正判斷這是否是一個功能,如果是的話,它肯定需要在幾個不同的地方提供更好的文件。如果您已經知道這個數字是多少應該看起來雖然你最好為該數據編寫自己的驗證函數,但我發現這可以防止像「1/1」這樣的事情被解釋為 1 月 1 日。 當然,如果您正在處理多種語言,這可能會變得更加困難。
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")
);回覆:JSL 功能還是錯誤?我意識到有很多情況需要注意——但具體來說我只需要關心標準字符,“R”是這裡唯一的例子。在任何其他程式語言中,這都會被詳細記錄或視為錯誤(文檔中未明確列出的任何行為都是錯誤),但 JMP 不處於該級別的文檔,因此它可能只是一個隱藏功能。
回覆:JSL 功能還是錯誤?貨幣,也許吧。 很多奇怪的情況要注意...
數字(“5 美元”)
5
num("2000 年 1 月 1 日")
3029529600
數(“5%”)
0.05
asdate(數字(“1/1”))
2001年1月1日