gpt4 book ai didi

MUMPS 无法将数字格式化为字符串

转载 作者:行者123 更新时间:2023-12-05 01:02:58 24 4
gpt4 key购买 nike

我试图在 MUMPS 中将大数转换为字符串,但我不能。

让我解释一下我想做什么:

s A="TEST_STRING#12168013110012340000000001"
s B=$P(A,"#",2)
s TAB(B)=1
s TAB(B)=1

我想创建一个数组 TAB其中变量 B将是数组 TAB 的主键.

当我这样做时 ZWR我会得到
A="TEST_STRING#12168013110012340000000001"
B="12168013110012340000000001"
TAB(12168013110012340000000000)=1
TAB("12168013110012340000000001")=1

正如你首先看到的 SET识别变量 B作为 number (错误转换)和第二个 SET识别变量 B作为 string (如我所愿)。
我的问题是怎么写 SET识别变量的命令 B作为 string而不是数字(我认为这是错误的)。

任何建议/解释都会有所帮助。

最佳答案

这可能是 MUMPS 内置的排序/存储机制的限制,并且在不同的 MUMPS 实现之间有所不同。原因是虽然 MUMPS 中的变量值是非类型化的,但索引值是 -- 并且数字索引在字符串索引之前排序。将大字符串转换为数字时,可能会出现舍入错误。为了防止这种情况发生,您需要在索引中的数字之前添加一个空格,以明确将其视为字符串:

s TAB(" "_B)=1

据我所知,Intersystems Cache 没有这个限制——至少你的代码在 Cache 和他们声称支持多达 309 位的文档中运行良好:

http://docs.intersystems.com/cache20141/csp/docbook/DocBook.UI.Page.cls?KEY=GGBL_structure#GGBL_C12648

关于MUMPS 无法将数字格式化为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25407612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com