diff --git a/lib/less/functions.js b/lib/less/functions.js
index <HASH>..<HASH> 100644
--- a/lib/less/functions.js
+++ b/lib/less/functions.js
@@ -749,13 +749,8 @@ function clamp(val) {
 }
 
 tree.fround = function(env, value) {
-    var p;
-    if (env && (env.numPrecision != null)) {
-        p = Math.pow(10, env.numPrecision);
-        return Math.round(value * p) / p;
-    } else {
-        return value;
-    }
+    var p = env && env.numPrecision;
+    return (p == null) ? value : +(value + 2e-16).toFixed(p);
 };
 
 tree.functionCall = function(env, currentFileInfo) {
reworked internal decimal rounding function.