scaleTo в cfchart не работает
Я работаю над 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 в целое число, потому что оно не может поместиться в целое число". Может ли кто-нибудь помочь мне выбраться из этого.
1 ответ
Вы передаете значение с плавающей запятой в атрибут scaleTo. Атрибут scaleTo ожидает целочисленное значение.
Я также предлагаю не использовать флэш-формат для диаграммы. Флэш-формат был исключен в новой версии CF. Это вызовет ошибку, если ваш код будет перенесен в более новую версию CF.
Обновить:
ColdFusion поддерживает целые числа от -2 147 483 648 до 2 147 483 647 (32-разрядные целые числа со знаком). Вы можете присвоить значение за пределами этого диапазона переменной. ColdFusion изначально сохраняет номер в виде строки. Если вы используете его в арифметическом выражении или операции, связанной с числом, ColdFusion преобразует его в значение с плавающей запятой, сохраняя его значение, но теряя точность. Значение 3161632127 находится вне диапазона. Следовательно, CF конвертирует значение в число с плавающей точкой. А поскольку значение равно float, CF выдает ошибку. Проверьте документ.