【问题标题】:Crystal Reports - In C#, what is comparable to the Number type?Crystal Reports - 在 C# 中,有什么可与 Number 类型相媲美的?
【发布时间】:2012-10-05 05:27:33
【问题描述】:

在我支持的应用程序中,我正在调试一个问题,即当报告中显示从数据库返回的值时,偶尔会发生“算术运算导致溢出”异常。我确信所呈现的值来自数据库作为 C# 小数。

但是,在我们的报告中,显示字段具有数字类型。我读过here, under conversion considerations,当转换为无法处理返回值大小的较小类型(例如浮点数或双精度数)时,可能会出现溢出异常。

很遗憾,Google 在这方面让我失望了 - 搜索“Crystal Reports Number 数据类型大小”产生的结果模糊不清,并没有告诉我有关 Crystal Reports 数字数据类型的任何信息。

所以,我在这里提出一个问题——Crystal Reports 数字与 C# 数字类型有何关系?或者它们有关系吗?

【问题讨论】:

    标签: c# types crystal-reports size


    【解决方案1】:

    根据此相关答案,Crystal Reports“数字”类型可能存储为 varchar 或 nvarchar:Minimum & Maximum Values in Crystal Reports 2008 Column;我不知道你的情况是否属实。我同意搜索 CR 数据类型很困难,我无法找到有关 CR 如何存储数据或有关其存储的数字的精度和规模的信息的适当文档。

    decimal 的精度为 28-29 位有效数字,.MaxValue 常量为 79,228,162,514,264,337,593,543,950,335。我想(希望!)这足以满足您的需求,但问题可能是 CR 具有或多或少的精度,即使某些值不一定超出范围,但它们对于目的地的精度过高处理。

    例如,请参阅this question about an Oracle to decimal problemthis question about subtracting 0.5 from a large decimal value 中还出现了一个有趣的案例。

    如您所见,数据类型之间的转换有时会令人沮丧。您可能希望在生成报告之前尝试使用较小的数据类型,例如 double

    【讨论】:

      猜你喜欢
      • 2022-11-15
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 2020-01-08
      • 1970-01-01
      • 2011-03-17
      • 2011-01-07
      • 1970-01-01
      相关资源
      最近更新 更多