3

我正在研究 ColdFusion 9 - cfchart,这是我的代码的一部分

<cfchart  format="flash" show3d="true"  title="Assigned Amount vs Projection Amount" scaleto="#scaleToForAmount#" scaleFrom="0"  backgroundColor="white" font="Arial" seriesplacement="stacked" chartHeight="400" chartWidth="800" labelFormat="number" > 
    <cfchartseries  type="bar"  query="chartData" itemcolumn="#variables.columnList[1]#Name" valuecolumn="PAID" seriesColor="##155D7F" seriesLabel="amout" paintStyle="plain" > 
    </cfchartseries> 
    <cfchartseries  type="bar"  query="chartData" itemcolumn="#variables.columnList[1]#Name" valuecolumn="PTP" seriesColor="##2AB9FF" paintStyle="plan" seriesLabel="PTP" > 
    </cfchartseries>
    <cfchartseries  type="bar"  query="chartData" itemcolumn="#variables.columnList[1]#Name" valuecolumn="PDC" seriesColor="##0A2E40" paintStyle="domain" seriesLabel="PDC" > 
   </cfchartseries>

但是当scaleTo的值增加超过整数限制时,我遇到了问题,它显示错误。即使将其转换为字符串、double 或 bigInt,它也不接受这些值。并继续显示“无法将值 3.1616321275E9 转换为整数,因为它不能放入整数”的错误。谁能帮我摆脱这个。

4

1 回答 1

2

您正在将浮点值传递给 scaleTo 属性。scaleTo 属性需要一个整数值。

我还建议不要对图表使用 Flash 格式。Flash 格式已在较新版本的 CF 中被弃用。如果您的代码迁移到较新版本的 CF,它将引发错误。

更新:

ColdFusion 支持介于 -2,147,483,648 和 2,147,483,647 之间的整数(32 位有符号整数)。您可以将超出此范围的值分配给变量。ColdFusion 最初将数字存储为字符串。如果在与数字相关的算术表达式或运算中使用它,ColdFusion 会将其转换为浮点值,保留其值,但会丢失精度。值 3161632127 超出范围。因此 CF 将值转换为浮点数。由于该值是浮点数,CF 会抛出错误。查看文档

于 2016-03-22T13:14:23.437 回答