简体   繁体   中英

Java web application running on Android digits number

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM