diff --git a/libavutil/opt.c b/libavutil/opt.c
index af8df7a2eb102c53de2ce8087cef8a6d6345a782..9a3c0d47c76d023943d5a2ed70b340b7cbaa8317 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -80,7 +80,8 @@ static int read_number(const AVOption *o, void *dst, double *num, int *den, int6
 static int write_number(void *obj, const AVOption *o, void *dst, double num, int den, int64_t intnum)
 {
     if (o->max*den < num*intnum || o->min*den > num*intnum) {
-        av_log(obj, AV_LOG_ERROR, "Value %lf for parameter '%s' out of range\n", num, o->name);
+        av_log(obj, AV_LOG_ERROR, "Value %lf for parameter '%s' out of range\n",
+               num*intnum/den, o->name);
         return AVERROR(ERANGE);
     }