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
如果您收到可以解释该行为的回复,请向此主题添加新评论,以便每个人都可以学习。