它解决什么问题
金额列被读成了文本 – 排序会乱、求和会失败、关联会配不上、比较运算符里没有「大于」。这个节点把它变回数值。
反向操作是 Number to String,用在关联前统一两边类型、或者出报表时要保留前导零的场合。
前面那个清洗节点常常是必需的。带千分位逗号和货币符号的值,直接转会失败。
基本信息
| 英文原名 | String to Number |
|---|---|
| 中文名称 | 文本转数字(iModel 中文界面) |
| 输入端口 | 1 个数据表 |
| 输出端口 | 1 个,行数不变 |
| 反向节点 | Number to String |
治本的做法其实是别让它变成文本。读取节点里能手工指定列类型,从源头定死,不受自动推断波动影响。这个节点更多是用在「已经拿到一张文本表」或者「清洗之后需要转回来」的场合。
配置项逐条
-
要转换的列Column Selection
可以一次选多列。用通配符按列名模式选,比逐个勾稳 – 以后源数据新增同类列会自动被覆盖。
-
目标类型Integer / Long / Double
有小数就选 Double。整数类型碰到小数会失败或截断。金额一律选 Double – 即便现在看起来都是整数,将来出现一笔带小数的就炸了。
-
小数点符号Decimal separator
中文和英文环境都用点号,一般不用改。数据来自欧洲系统时可能是逗号,那时要改。
-
千分位符号Thousands separator
填逗号可以让它自己处理
1,234这种写法,省掉前面那一步清洗。但货币符号和百分号它管不了,还是要先清。 -
转换失败时Fail / Insert missing
中止执行,还是把转不动的置为空值继续跑。调试阶段选中止 – 报错会告诉你是哪一行的什么值卡住了。
生产流程里若确知有少量脏值,可以改成置空,但下游一定要加一步统计空值数量。否则问题会被藏起来 – 你以为跑通了,实际上有一批金额悄悄变成了空。
String to Number 配置对话框
要转换的列
原值、累计折旧同类列可以一次多选。
目标类型
IntegerDouble
金额一律选 Double。现在都是整数不代表以后没有小数。
千分位符号
,填上可以省掉一步清洗,但货币符号仍要先去掉。转换失败时
中止执行置为空值继续
选置空就必须在下游统计空值数量,否则问题被藏起来。
三个常见坑
- 编号列被顺手转成了数字。身份证号、银行账号、部门编码看起来像数字,但不该是数字 – 前导零会消失,超长数字会变成科学计数法且不可逆。判断标准:这一列你会拿去做加减乘除吗?不会就该保持文本。
- 选了置空继续,结果悄悄少了一批数据。汇总金额比预期少,查半天查不出来。用了容错就配套加一步空值统计。
- 转完忘了检查是不是真转成功了。看列名旁边的类型图标。图标没变说明这一列压根没被选中 – 一次选多列时容易漏。
什么时候该换别的节点
| 情况 | 换成 |
|---|---|
| 数字要变成文本 | Number to String |
| 文本要转成日期 | String to Date&Time |
| 值里有货币符号、百分号、括号负数 | 先用 String Manipulation 清掉再转 |
| 想一劳永逸 | 回读取节点手工指定列类型 |

