2013-08-05 4 views
0

После Google Chart работает для меня, потому что значения integer:двойное значение в графике Google не работает

google.load("visualization", "1", { packages: ["corechart"] }); 
    google.setOnLoadCallback(drawChart); 
    function drawChart() { 
     var Value1 = '@Model.Value1'; 
     var Value2 = '@Model.Value2'; 

     var tdata = new google.visualization.DataTable(); 

     tdata.addColumn('string', 'Years'); 
     tdata.addColumn('number', 'Values'); 
     tdata.addColumn({ type: 'string', role: 'tooltip', 'p': { 'html': true } }); 

     tdata.addRow(['1', Value1, createCustomHTMLContentYear1()]); 
     tdata.addRow(['2', Value2, createCustomHTMLContentYear2()]); 

     var options = { title: 'Value diagram for year' }; 

     var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); 
     chart.draw(tdata, options); 
    } 

createCustomHTMLContentYear1 и createCustomHTMLContentYear2 мои пользовательские функции.

Но, если значения находятся в double, это не работает. Я использовал parseInt(Value1), но в этом случае двойное значение теряется. Например, 0,3333 оборотов .

Как я могу изменить свой код для отображения значений double на диаграмме?

Заранее спасибо.

+1

https://developers.google.com/chart/interactive/docs/gallery/columnchart?csw=1#Configuration_Options – mplungjan

+0

Я преобразовал его в ToString («F4»), а затем снова обратился к поплавке. это сработало. Спасибо –

ответ

1

Почему вы вводите свои цифры в виде строк?

var Value1 = '@Model.Value1'; 
var Value2 = '@Model.Value2'; 

должно быть

var Value1 = @Model.Value1; 
var Value2 = @Model.Value2; 

при условии, что @Model относится к элементу данных на стороне сервера. Тогда вам не нужно беспокоиться о преобразовании типов.

Если по какой-то причине, вы должны ввести число в виде строки, то собственная функция преобразования типа является parseFloat, не ParseInt:

tdata.addRow(['1', parseFloat(Value1), createCustomHTMLContentYear1()]); 
tdata.addRow(['2', parseFloat(Value2), createCustomHTMLContentYear2()]); 

Вам нужно сделать только один из них, но не оба.

+0

Код в моем вопросе отлично работает с символами ''. У меня была проблема с двойными номерами. Потому что числа были 0.33333333 .... Во-первых, я преобразовал строку с форматированием «F4», затем плавал. это сработало. В любом случае я принимаю ваш ответ за «parseFloat». спасибо –

+0

Ввод чисел в виде строк может вызвать проблемы в некоторых визуализациях (PieCharts приходят на ум в качестве одного примера), поэтому я рекомендовал вместо этого преобразовать их в числа. – asgallant

Смежные вопросы