diff --git a/examples/setting-options.html b/examples/setting-options.html
index 8d1967e..1e359da 100644
--- a/examples/setting-options.html
+++ b/examples/setting-options.html
@@ -48,7 +48,8 @@ $(function () {
yaxis: {
ticks: 10,
min: -2,
- max: 2
+ max: 2,
+ tickDecimals: 3
},
grid: {
backgroundColor: { colors: ["#fff", "#eee"] }
diff --git a/jquery.flot.js b/jquery.flot.js
index def82f5..e3d0d00 100644
--- a/jquery.flot.js
+++ b/jquery.flot.js
@@ -1290,9 +1290,23 @@
return ticks;
};
- axis.tickFormatter = function (v, axis) {
- var factor = Math.pow(10, axis.tickDecimals);
- return "" + Math.round(v * factor) / factor;
+ axis.tickFormatter = function (value, axis) {
+
+ var factor = Math.pow(10, axis.tickDecimals);
+ var formatted = "" + Math.round(value * factor) / factor;
+
+ // If tickDecimals was specified, ensure that we have exactly that
+ // much precision; otherwise default to the value's own precision.
+
+ if (axis.tickDecimals != null) {
+ var decimal = formatted.indexOf(".");
+ var precision = decimal == -1 ? 0 : formatted.length - decimal - 1;
+ if (precision < axis.tickDecimals) {
+ return (precision ? formatted : formatted + ".") + ("" + factor).substr(1, axis.tickDecimals - precision);
+ }
+ }
+
+ return formatted;
};
}