yes this should not matter, but I think it is the right thing todo ...
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Wed, 19 Aug 2009 07:44:34 +0000 (07:44 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Wed, 19 Aug 2009 07:44:34 +0000 (07:44 +0000)
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1895 a5681a0c-68f1-0310-ab6d-d61299d08faa

src/rrd_graph.c

index 1ea457b..323fec6 100644 (file)
@@ -4867,7 +4867,7 @@ int vdef_calc(
             array[step] = data[step * src->ds_cnt];
         }
         qsort(array, step, sizeof(double), vdef_percent_compar);
             array[step] = data[step * src->ds_cnt];
         }
         qsort(array, step, sizeof(double), vdef_percent_compar);
-        field = (steps - 1) * dst->vf.param / 100;
+        field = round((dst->vf.param * (double)(steps - 1)) / 100.0);
         dst->vf.val = array[field];
         dst->vf.when = 0;   /* no time component */
         free(array);
         dst->vf.val = array[field];
         dst->vf.when = 0;   /* no time component */
         free(array);
@@ -4900,7 +4900,7 @@ int vdef_calc(
             }
         }
         qsort(array, nancount, sizeof(double), vdef_percent_compar);
             }
         }
         qsort(array, nancount, sizeof(double), vdef_percent_compar);
-        field = (nancount - 1) * dst->vf.param / 100;
+        field = round( dst->vf.param * (double)(nancount - 1) / 100.0);
         dst->vf.val = array[field];
         dst->vf.when = 0;   /* no time component */
         free(array);
         dst->vf.val = array[field];
         dst->vf.when = 0;   /* no time component */
         free(array);