我觉得我一直在以一种特别困难的方式做一些事情,这似乎应该是一项相对简单的任务。想知道其他人是否有更好的方法的建议。

我正在尝试创建一个像此处所示的自定义表格,其中“值”列中的每个条目都可以具有不同的小数位数。在下面的示例中,“N”应有 0 个小数位,“Mean”/“SD”/“LCL (3SD)”/“UCL (3SD)”应恰好有四个小数位,“Pp”应恰好有两个小数位位置等 - 包括任何尾随零。这些值来自数据表,其中值输入到第一行的列中,并以“Stat”列条目作为列标题。
最初我将其设置为一个表格框,其中嵌入了字符串列框和数字列框:
nw = New Window( "nw", tb = Table Box(
scb = String Col Box( "Stat", {}),
ncb = Number Col Box( "Value", {}),
)
);
For( i = 1, i <= N Cols( dt), i++,
tb << Add Row( {Column( dt, i) << Get Name, Column( dt, i)[1] })
);但数字列框似乎有自己的数字格式设置,适用于该框中的所有条目。
经过多次试验和错误,我发现有效的是使用 Char() 或 Format() (指定格式/小数位)将各个项目从数字格式转换为字符格式。例如,
Column( dt, "Pp")[1] = Format( Round( Column( dt, "Pp")[1], 2), "Fixed Dec", 2);
然后用第二个字符串列框替换数字列框并将转换后的值添加为字符串,例如,
nw = New Window( "nw", tb = Table Box(
scb1 = String Col Box( "Stat", {}),
scb2 = String Col Box( "Value", {}),
)
);
For( i = 1, i <= N Cols( dt), i++,
tb << Add Row( {Column( dt, i) << Get Name, Column( dt, i)[1] })
);有没有更简单的方法让我失踪?
在旁边:
- 今天我了解到Format()函数将数字数据转换为字符数据。我认为这只是为了改变数字数据的格式。
- 今天我了解到可以向 Char() 添加宽度和小数位属性。否则它将截掉尾随零。