Prism 最多能存储多少位数?
在 Prism 7 之前,Prism 仅存储 7 位数字(实际上它是二进制的,因此相当于“大约”7 位十进制数字),因此并不总是能精确存储您输入的数值。例如,如果您将数值 99.2492427 输入到数据表中,Prism 会将其四舍五入为 99.249250。
现在 Prism 采用双精度存储数字,因此可以存储约 14 位有效数字。如果您将数值 99.2492427 输入到数据表中,Prism 会将其存储为 99.2492427
如何显示少于输入的位数
默认情况下,Prism 会尝试显示您输入的所有数字,并增加小数点后位数以容纳这些额外数字。但您可以通过“小数格式”对话框来显示更少的位数。分析结果也可以进行四舍五入。
Prism 数据表中显示的内容仅在您查看该表格时才重要。注意:
•在数据表中选择显示更少的位数不会影响 Prism 对数据的分析或绘图。分析始终基于您输入的所有位数(上限为 Prism 可存储的位数)。
•当您保存 Prism 文件(为 .PZF 或 .PZFX 格式)时,Prism 会保存您输入的所有数字(最多 14 位),因此保存时数值不会被截断。
•当您将数据从 Prism 数据表复制到剪贴板时,Prism 复制的是您输入的值,而不仅仅是表中显示的位数。
•当您将数据表导出为 .TXT 或 .CSV 文件时,Prism 会导出您输入的数字,而不仅仅是表中显示的数字。
四舍五入
有两个问题可能会使四舍五入看起来不稳定。
•当下一位数字是 5 时。除非下一位数字是 5,否则值的四舍五入很简单。2.5 应该向上舍入为 3 还是向下舍入为 2?两者同样准确,并且已经提出了许多策略来处理这个问题。维基百科上关于四舍五入的文章解释了许多可能性。Prism 对以 5 结尾的值的四舍五入有些难以预测。 例如,0.25会被四舍五入为0.3,但0.45会被四舍五入为0.4。这两种处理方式都是正确的,因为将5四舍五入为0.3还是0.4是一个任意决定。Prism Windows版使用C语言函数sprintf()来显示实数。Mac Xcode编译器使用的函数与此类似,但并不完全相同。
• 十进制转二进制再转十进制。计算机以二进制形式存储数字,因此需要进行十进制与二进制之间的转换。对于许多数值,这同样需要进行四舍五入。例如,假设您输入数字 0.055,并要求 Prism 仅显示两位小数。 紧随其后的第三位数字是 5。一个常见的规则是,当下一位数字为 5 时总是向上取整,因此您可能会预期 Prism 会显示 0.06。但计算机无法存储 0.055 这个值。相反,所有数值都会被转换为二进制,而该二进制值在转换回十进制时接近 0.05499996。 将该数值四舍五入至小数点后两位时,第三位数字为4。因此,Prism Windows版在此情况下会向下舍入并显示0.05;而Prism Mac版则向上舍入,显示0.06。
Prism 8 中的四舍五入
“十进制格式”对话框会对表格中显示的数值进行向下取整。但当您编辑数据时,您输入(或导入、粘贴)的所有数字位数仍然存在。从 Prism 8 开始,您可以使用转换功能将数据四舍五入到指定的小数位数。这是针对 X 和 Y 值的内置转换(位于列表底部)。
结果将显示在结果页面上。实际上,显示的位数会比您期望的多一位,且最后一位始终为零。您可以使用“十进制格式”设置来减少一位小数。在结果页面上,您可以进行进一步分析,或复制、导出四舍五入后的数值。
使用早期版本的 Prism 进行四舍五入
点击“分析”并选择“转换”。然后选择“用户定义的 Y 转换”。接着点击“添加...”以添加新函数。以下是一个将数字四舍五入为仅保留小数点后两位数的转换:
Y = Floor(Y*10^2 + 0.5)/10^2
该转换将 Y 值乘以 10^2(即 100),加上 0.5,然后向下取整(即 Floor 函数的功能),最后除以 100。
将两个位置的“2”替换为“3”即可四舍五入至小数点后三位,依此类推。
结果将显示在结果页面上。实际上显示的位数会比您期望的多一位,且最后一位总是零。您可以使用“十进制格式”设置来减少一位小数。