IBM Cognos 最佳实践: IBM Cognos Planning 中的四舍五入

文档性质:Guideline;产品:IBM Cognos Planning;关注领域:建模

本文提供了 IBM Cognos Planning 如何执行四舍五入计算的一个解释,也提供了关于浮点运算的信息。

Finuala Barnes, 高级产品经理 - IBM Cognos Planning, IBM

Finuala Barnes 是 IBM Cognos Planning 的一名产品经理。在她使用 IBM Cognos Planning 的15 年经验中,她与客户密切接触,最初是在咨询组织,后来是在产品部门。Finuala 目前主要关注模型设计和客户成功,而且她在这些职责中利用她的会计背景。



2011 年 7 月 22 日

免费下载:IBM® Cognos® Express V9.5 或者 Cognos® 8 Business Intelligence Developer Edition V8.4 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

目的

本文解释了与电子表格相比 IBM Cognos Planning 中的四舍五入计算,也提供了关于浮点运算的信息。

适用性

本文适用于目前所有的 IBM Cognos Planning 版本。

例外与除外责任

已确认没有例外。


在 IBM Cognos Planning 如何进行四舍五入

在本例中,在每一列中 Input 和 Multiply 行的数据输入都是相同的;但是,格式化使得列中的数据以不同的方式呈现给用户。这意味着根据数据呈现的格式,计算可能被认为是不正确的。

然而,从第 3 行可以看到,Planning 根据存储的数据进行计算,包括所有小数位,然后将结果以所请求的方式呈现给用户。

图 1. Analyst D-Cube 显示了 3 个四舍五入级别
Analyst D-Cube 显示了 3 个四舍五入级别

这里应该注意,当使用与 IBM Cognos Planning 相同的方式进行格式化时,在电子数据表中应该实现完全相同的结果。注意:如果电子表格列宽度不足以显示所有小数位,那么电子表格可根据现有列宽度进行四舍五入。

图 2. 电子表格实施与 Analyst 完全相同的四舍五入计算,有相同的结果
电子表格实施与 Analyst 完全相同的四舍五入计算,有相同的结果

如果您想要确保 Planning 仅使用有给定小数位的基数进行计算,那么内置在函数中的 @TRound 可以实现这一点。在数据集中定义另一种维度是很有必要的,便于 Timescale 能够使用 BiF。在这种情况下,列维度被设置为一个时间表。

图 3. Analyst D-Cube 显示 @TRound BiF 结果
Analyst D-Cube 显示 @TRound BiF 结果

@TRound 函数用于 4 个项目(Input 2dp、Multiply 2dp、Input 0dp、Multiply 0dp)进行四舍五入计算,惟一不同的是在 BiF 中源条目和小数位数是必需的。

图 4. D-List 项和 @TRound BiF 计算
D-List 项和 @TRound BiF 计算

虽然这些示例都集中介绍一个简单的乘法运算,但要指出,所有 Cognos Planning 运算都是以相同方式运行的。如果提供的小数位数并不是必须的,那么 @TRound 函数可用于解决此问题。


浮点运算

浮点运算是由附带的 FPU (Floating-Point Unit),一个专用软件,处理的。电子表格中也使用这种芯片,因而产生相同的数字,偶尔会有相同的差异。

计算机不能准确地存储一些数据,比如 1/3,就不能以十进制精确地表示。至于所需的小数位数,这是必须要做出决定的,接受一个非常微小的误差级别,使用一个选择的小数位数将其写为 0.3333333333。

浮点是一个非常类似的概念,除了计算机使用二进制而不是十进制作为基础。虽然 0.1 和 1/10 看起来很像,但是计算机将其存储为一个非常接近输入数字的值。差异大约是两千万亿分之一(十六位小数),太小而无法显示。大多数情况下,为了显示,从二进制计算返回十进制结果会移除一些四舍五入误差。

非常偶然的情况下,特别是当一个数字上进行多个运算或者同一个计算中有非常大的数也有非常小的数时,很有可能使用浮点所造成的差异可能很明显,使用 @Tround 函数可以解决此问题。


Breakback 和 Rounding

这里应该指出,偶尔会出现 breakback 的数据总数输入在单元格中不会产生整数。在这种情况下,在单元格中显示的数据可能含有没有显示的小数位,因格式而异,因此不能生成预期的计算结果。

参考资料

学习

获得产品和技术

讨论

  • 参与 developerWorks 博客 并加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=677659
ArticleTitle=IBM Cognos 最佳实践: IBM Cognos Planning 中的四舍五入
publish-date=07222011