diff --git a/gluon-config-mode-zip/luasrc/lib/gluon/config-mode/wizard/0450-geo-location.lua b/gluon-config-mode-zip/luasrc/lib/gluon/config-mode/wizard/0450-geo-location.lua
index b71ffd8307bb8a9da0ab8b590e53f47364d7513c..c2f30cd6df7f45dd8245737b5c32b4eefa68f831 100644
--- a/gluon-config-mode-zip/luasrc/lib/gluon/config-mode/wizard/0450-geo-location.lua
+++ b/gluon-config-mode-zip/luasrc/lib/gluon/config-mode/wizard/0450-geo-location.lua
@@ -12,7 +12,7 @@ function M.section(form)
     local o = s:option(cbi.Value, "_zip", fieldlabel)
     o.value = uci:get_first("gluon-node-info", "location", "zip")
     o.rmempty = true
-    o.datatype = "float"
+    o.datatype = "uinteger"
     o.description = i18n.translatef("e.g. %s", "70499")
 end
 
diff --git a/gluon-config-mode-zip/src/respondd.c b/gluon-config-mode-zip/src/respondd.c
index 5690e4c57e8a97b26f8659351f36cfc28b5abcca..789253893b98f67b7420a02d63bd5e4f46de01e7 100644
--- a/gluon-config-mode-zip/src/respondd.c
+++ b/gluon-config-mode-zip/src/respondd.c
@@ -51,13 +51,7 @@ static struct json_object * get_number(struct uci_context *ctx, struct uci_secti
 	if (!val || !*val)
 		return NULL;
 
-	char *end;
-	double d = strtod(val, &end);
-	if (*end)
-		return NULL;
-
-	struct json_object *jso = json_object_new_double(d);
-	json_object_set_serializer(jso, json_object_double_to_json_string, "%.8f", NULL);
+	struct json_object *jso = json_object_new_string(val);
 	return jso;
 }