Prism 最多能存储多少位数?
在 Prism 7 之前,Prism 仅存储七位数(实际上它是二进制的,因此“大约”相当于七位十进制数),因此并不总是能精确存储您输入的数值。 例如,如果您在数据表中输入数值 99.2492427,Prism 会将其四舍五入为 99.249250。
现在,Prism 以双精度存储数字,因此可以存储大约十四位有效数字。如果您将值 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”即可四舍五入到小数点后三位,依此类推。
结果将显示在结果页面上。实际上显示的小数位数会比您期望的多一位,且最后一位始终为零。您可以使用“十进制格式”设置,将小数位数减少一位。