以下Google图表适用于我,因为值为integer
:
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 会变为 0 。
如何更改代码以在图表上显示double
值?
提前致谢。
答案 0 :(得分: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()]);
你只需要做其中一个,而不是两个。