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 выдает ошибку. Проверьте документ.

Другие вопросы по тегам