set 和 new 表變數之間的差異 - 寫入字串的奇怪結果?有人可以幫助我理解為什麼 36D10 和 36E10 表變數會擴展為 sci 表示法嗎?但似乎只適用於“新”而不是“設定”表變數?
謝謝,
- 桃

dt = New Table("Table");
testvar = "36D10";
dt << New Table Variable("tv_testD", char(testvar));
testvar = "36C10";
dt << New Table Variable("tv_testC", testvar);
testvar = "36F10";
dt << New Table Variable("tv_testF", testvar);
testvar = "36E10";
dt << New Table Variable("tv_testE", testvar);
testvar = "36E10";
dt << Set Table Variable("tv_testEset", testvar);進階統計建模消費者與市場研究大規模客製化回覆:設定和新表變數之間的差異 - 寫入字串的奇怪結果?謝謝克雷格,這有助於澄清和確定我應該如何使用。
將某些內容添加到文件中可能會很好,或者可能在未來的 JMP 版本中更改每個內容的實現,以便它們保持一致 - 用戶似乎很難了解當前文檔(以及“E”)的行為差異'我立即想到,'哦,它正在做一些帶有指數的事情- 但導致問題的'D' 確實讓我陷入了困境)。
回覆:設定和新表變數之間的差異 - 寫入字串的奇怪結果?E 代表指數,(很久以前)D 代表雙精確度指數。
我建議使用SET表變數;它的行為符合我的預期:將數字儲存為數字,將字串儲存為字串,並僅在表變數不存在時創建表變數。
NEW表變數如果名稱已存在,則會向名稱添加後綴,並且(意外行為)將看起來像數字的字串轉換為數字。
為了進一步混淆事情,dt<<取得表變數("name") 傳回字串,即使該值為數字。
我建議使用dt:名稱取得儲存的數值或字串值。
dt = New Table("Table");
dt << new Table Variable("a", char(17)); // 17 vs char(17)
show(dt:a,dt<<GETTABLEVARIABLE></GETTABLEVARIABLE>dt:a = 17; <<< 轉換為數字
dt << gettablevariable("a") = "17"; <<< 但作為字串取得!?!?!
dt:a = 42.42; <<< 以預期儲存了一個數字
dt << gettablevariable("a") = "42.42"; <<<?!?!?總是回傳一個字串
dt:a = "你好"; <<< 按預期儲存了一個字串
dt << gettablevariable("a") = "你好"; <<< 嗯,好的
dt:a = 42.42;
dt << gettablevariable("a") = "42.42";
回覆:設定和新表變數之間的差異 - 寫入字串的奇怪結果?您可以聯絡 JMP 支援來解決此問題support@jmp.com
如果您收到可以解釋該行為的回复,請向此主題添加新評論,以便每個人都可以學習。