diff --git a/include/inja/renderer.hpp b/include/inja/renderer.hpp
index ef951b9..e299db5 100644
--- a/include/inja/renderer.hpp
+++ b/include/inja/renderer.hpp
@@ -439,7 +439,11 @@
       const auto args = get_arguments<2>(node);
       const int precision = args[1]->get<int>();
       const double result = std::round(args[0]->get<double>() * std::pow(10.0, precision)) / std::pow(10.0, precision);
-      result_ptr = std::make_shared<json>(std::move(result));
+      if(0==precision){
+        result_ptr = std::make_shared<json>(int(result));
+      }else{
+        result_ptr = std::make_shared<json>(std::move(result));
+      }
       json_tmp_stack.push_back(result_ptr);
       json_eval_stack.push(result_ptr.get());
     } break;
diff --git a/single_include/inja/inja.hpp b/single_include/inja/inja.hpp
index 03e19a0..509f5e7 100644
--- a/single_include/inja/inja.hpp
+++ b/single_include/inja/inja.hpp
@@ -3935,7 +3935,11 @@
       const auto args = get_arguments<2>(node);
       const int precision = args[1]->get<int>();
       const double result = std::round(args[0]->get<double>() * std::pow(10.0, precision)) / std::pow(10.0, precision);
-      result_ptr = std::make_shared<json>(std::move(result));
+      if(0==precision){
+        result_ptr = std::make_shared<json>(int(result));
+      }else{
+        result_ptr = std::make_shared<json>(std::move(result));
+      }
       json_tmp_stack.push_back(result_ptr);
       json_eval_stack.push(result_ptr.get());
     } break;
diff --git a/test/test-functions.cpp b/test/test-functions.cpp
index 4ec4c25..dab8e9b 100644
--- a/test/test-functions.cpp
+++ b/test/test-functions.cpp
@@ -88,7 +88,7 @@
   }
 
   SUBCASE("round") {
-    CHECK(env.render("{{ round(4, 0) }}", data) == "4.0");
+    CHECK(env.render("{{ round(4, 0) }}", data) == "4");
     CHECK(env.render("{{ round(temperature, 2) }}", data) == "25.68");
     // CHECK_THROWS_WITH( env.render("{{ round(name, 2) }}", data), "[inja.exception.json_error]
     // [json.exception.type_error.302] type must be number, but is string" );
