I've developed a java web application with C3 js for drawing a graphic. In the C3 js tooltip I try to print a number with minimum 4 fraction digits. I test the application on multiple environments, desktop and mobile (IOS & Android), but in Android, the number from the tooltip it's printed with just 3 fraction digits.
Here is my js code that C3 js is using for drawing the tooltip:
tooltip: {
grouped: false,
contents: function(d, defaultTitleFormat, defaultValueFormat, color) {
var $$ = this, config = $$.config, titleFormat = config.tooltip_format_title || defaultTitleFormat, nameFormat = config.tooltip_format_name
|| function(name) {
return name;
}, valueFormat = config.tooltip_format_value || defaultValueFormat, text, i, title, value, name, bgcolor;
for (i = 0; i < d.length; i++) {
if (!(d[i] && (d[i].value || d[i].value === 0))) {
continue;
}
if (!text) {
title = titleFormat ? titleFormat(d[i].x) : d[i].x;
text = "<table class='" + $$.CLASS.tooltip + "'>"
+ (title || title === 0 ? "<tr><th colspan='2'>" + title + "</th></tr>" : "");
}
name = nameFormat(d[i].name);
var fundName = dojo.query('#hiddenFundName')[0].value;
var raiffeisenAcumulareFundName = 'raiffeisen acumulare';
if (fundName.toLowerCase() == raiffeisenAcumulareFundName) {
value = valueFormat(d[i].value.toLocaleString("en-US", {
minimumFractionDigits: 6
}), d[i].ratio, d[i].id, d[i].index);
} else {
value = valueFormat(d[i].value.toLocaleString("en-US", {
minimumFractionDigits: 4
}), d[i].ratio, d[i].id, d[i].index);
}
bgcolor = $$.levelColor ? $$.levelColor(d[i].value) : color(d[i].id);
var initialNAV = dojo.attr(query("#initialnavPU")[0], "value");
text += "<tr class='" + $$.CLASS.tooltipName + "-" + d[i].id + "'>";
text += "<td class='value'>" + '<h5>' + titleFormat(d[i].x) + '</h5>' + '<h5>Valoarea unitatii de fond: ' + value
+ '</h5>' + '<h5>Randament: ' + ((d[i].value / initialNAV - 1) * 100).toFixed(2) + '%' + '</h5></td>';
text += "</tr>";
}
return text + "</table>";
}
}
Do you have any idea why my number doesn't respect the number of fraction digits that I want to print? Remember, it's just on Android OS.
Try adding format option for tooltip:
tooltip: {
format: {
value: function (value) {
return d3.format('.4f')(value);
}
},
...
// your current options
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.