diff --git a/tests/extmod/ujson_dumps.py b/tests/extmod/ujson_dumps.py
index 16a695ab5c9906a70d2c176d2d71a0c17e144793..c0ee60d736823fdf2f06a8011c0935f24cf0948d 100644
--- a/tests/extmod/ujson_dumps.py
+++ b/tests/extmod/ujson_dumps.py
@@ -7,7 +7,6 @@ print(json.dumps(False))
 print(json.dumps(True))
 print(json.dumps(None))
 print(json.dumps(1))
-print(json.dumps(1.2))
 print(json.dumps('abc'))
 print(json.dumps('\x00\x01\x7e'))
 print(json.dumps([]))
diff --git a/tests/extmod/ujson_dumps_float.py b/tests/extmod/ujson_dumps_float.py
new file mode 100644
index 0000000000000000000000000000000000000000..f6ba5f11396115795bc0ea85d1045435b99d7d98
--- /dev/null
+++ b/tests/extmod/ujson_dumps_float.py
@@ -0,0 +1,6 @@
+try:
+    import ujson as json
+except ImportError:
+    import json
+
+print(json.dumps(1.2))
diff --git a/tests/extmod/ujson_loads.py b/tests/extmod/ujson_loads.py
index 75e61dacd9e220a493331acc62ce26440066c4b9..22f4a02c41c7c8796985bf25a7166cc4c94a5d13 100644
--- a/tests/extmod/ujson_loads.py
+++ b/tests/extmod/ujson_loads.py
@@ -6,8 +6,6 @@ except:
 def my_print(o):
     if isinstance(o, dict):
         print('sorted dict', sorted(o.items()))
-    elif isinstance(o, float):
-        print('%.3f' % o)
     else:
         print(o)
 
@@ -15,12 +13,7 @@ my_print(json.loads('null'))
 my_print(json.loads('false'))
 my_print(json.loads('true'))
 my_print(json.loads('1'))
-my_print(json.loads('1.2'))
-my_print(json.loads('1e2'))
 my_print(json.loads('-2'))
-my_print(json.loads('-2.3'))
-my_print(json.loads('-2e3'))
-my_print(json.loads('-2e-3'))
 my_print(json.loads('"abc\\u0064e"'))
 my_print(json.loads('[]'))
 my_print(json.loads('[null]'))
diff --git a/tests/extmod/ujson_loads_float.py b/tests/extmod/ujson_loads_float.py
new file mode 100644
index 0000000000000000000000000000000000000000..f5e754608ce0cf125d70ebc00df243385ce1bb63
--- /dev/null
+++ b/tests/extmod/ujson_loads_float.py
@@ -0,0 +1,13 @@
+try:
+    import ujson as json
+except:
+    import json
+
+def my_print(o):
+    print('%.3f' % o)
+
+my_print(json.loads('1.2'))
+my_print(json.loads('1e2'))
+my_print(json.loads('-2.3'))
+my_print(json.loads('-2e3'))
+my_print(json.loads('-2e-3'))
diff --git a/tests/run-tests b/tests/run-tests
index c4868b3c2b8fa3f582bb59e30ba91b0568ccd7da..bd2cbfd029c5f51c2220a4c0754f68f21fd702a9 100755
--- a/tests/run-tests
+++ b/tests/run-tests
@@ -155,8 +155,8 @@ def run_tests(pyb, tests, args):
             skip_tests.add('misc/rge_sm.py')                # requires floating point
             skip_tests.update({'extmod/uctypes_%s.py' % t for t in 'bytearray le native_le ptr_le ptr_native_le sizeof sizeof_native'.split()}) # requires uctypes
             skip_tests.add('extmod/zlibd_decompress.py')    # requires zlib
-            skip_tests.add('extmod/ujson_dumps.py')         # requires floating point
-            skip_tests.add('extmod/ujson_loads.py')         # requires floating point
+            skip_tests.add('extmod/ujson_dumps_float.py')   # requires floating point
+            skip_tests.add('extmod/ujson_loads_float.py')   # requires floating point
 
     # Some tests are known to fail on 64-bit machines
     if pyb is None and platform.architecture()[0] == '64bit':