diff --git a/SAS/ResourceAssignment/TaskPrescheduler/lib/cobaltblocksize.py b/SAS/ResourceAssignment/TaskPrescheduler/lib/cobaltblocksize.py
index fb67245c397ed2261114ed1a2e7b5dc9ed53c267..daa5266fc31381ea20a84d6200d696383b0608e9 100644
--- a/SAS/ResourceAssignment/TaskPrescheduler/lib/cobaltblocksize.py
+++ b/SAS/ResourceAssignment/TaskPrescheduler/lib/cobaltblocksize.py
@@ -206,4 +206,4 @@ class BlockSize(object):
                 bestNrBlocks  = nrBlocks
                 bestError     = error
 
-        return bestBlockSize
+        return int(round(bestBlockSize))
diff --git a/SAS/ResourceAssignment/TaskPrescheduler/taskprescheduler.py b/SAS/ResourceAssignment/TaskPrescheduler/taskprescheduler.py
index a39e3075d20ea87757b666bb11903ae5e402fe3a..a5e6341fccba4509384dc7323f8e09b0c99cee28 100644
--- a/SAS/ResourceAssignment/TaskPrescheduler/taskprescheduler.py
+++ b/SAS/ResourceAssignment/TaskPrescheduler/taskprescheduler.py
@@ -72,8 +72,8 @@ def calculateCobaltSettings(spec):
     constraints = BlockConstraints(corr, coherent, incoherent, clock)
     calculator = BlockSize(constraints)
 
-    return {'nrSubblocks': int(calculator.nrSubblocks), 'blockSize': int(calculator.blockSize),
-            'nrBlocks': int(calculator.nrBlocks), 'integrationTime': calculator.integrationTime}
+    return {'nrSubblocks': calculator.nrSubblocks, 'blockSize': calculator.blockSize,
+            'nrBlocks': calculator.nrBlocks, 'integrationTime': calculator.integrationTime}
 
 def cobaltOTDBsettings(cobalt_values):
     otdb_info = {}
diff --git a/SAS/ResourceAssignment/TaskPrescheduler/test/test_taskprescheduler.py b/SAS/ResourceAssignment/TaskPrescheduler/test/test_taskprescheduler.py
index 85a39a65784f64161b79ef15d1fbf2f1539c05d8..3cbe34c59b3fe6b5abf62b1e4ff19d42b838f0dd 100755
--- a/SAS/ResourceAssignment/TaskPrescheduler/test/test_taskprescheduler.py
+++ b/SAS/ResourceAssignment/TaskPrescheduler/test/test_taskprescheduler.py
@@ -208,7 +208,14 @@ class PreschedulerTest(unittest.TestCase):
 
     def test_CobaltOTDBsettings(self):
         otdb_info = cobaltOTDBsettings(self.test_cobalt_settings)
+
+        # beware! assertEqual succeeds for a comparison between 42.0 and 42
+        # but for lofar specs it is essential that some values are int
+        # so, check specifically for those!
         self.assertEqual(otdb_info, self.otdb_info)
+        self.assertEqual(int, type(otdb_info['LOFAR.ObsSW.Observation.ObservationControl.OnlineControl.Cobalt.Correlator.nrBlocksPerIntegration']))
+        self.assertEqual(int, type(otdb_info['LOFAR.ObsSW.Observation.ObservationControl.OnlineControl.Cobalt.Correlator.nrIntegrationsPerBlock']))
+        self.assertEqual(int, type(otdb_info['LOFAR.ObsSW.Observation.ObservationControl.OnlineControl.Cobalt.blockSize']))
 
     @mock.patch('lofar.sas.resourceassignment.common.specification.logger')
     def test_onObservationApproved_log_mom_id_found(self, logger_mock):
@@ -292,7 +299,29 @@ class PreschedulerTest(unittest.TestCase):
         spec = Specification(self.otdbrpc_mock, self.momrpc_mock, self.radbrpc_mock)
         spec.internal_dict = self.test_specification
         cobalt_settings = calculateCobaltSettings(spec)
+
+        # beware! assertEqual succeeds for a comparison between 42.0 and 42
+        # but for lofar specs it is essential that some values are int
+        # so, check specifically for those!
         self.assertEqual(cobalt_settings, self.test_cobalt_settings)
+        self.assertEqual(int, type(cobalt_settings['blockSize']))
+        self.assertEqual(int, type(cobalt_settings['nrBlocks']))
+        self.assertEqual(int, type(cobalt_settings['nrSubblocks']))
+
+    def test_calculateCobaltSettingsAndConvertToOTDBsettings(self):
+        '''combination of test_CobaltOTDBsettings and test_calculateCobaltSettings
+        Make sure that the values are calculated and converted correctly'''
+        spec = Specification(self.otdbrpc_mock, self.momrpc_mock, self.radbrpc_mock)
+        spec.internal_dict = self.test_specification
+        otdb_info = cobaltOTDBsettings(calculateCobaltSettings(spec))
+
+        # beware! assertEqual succeeds for a comparison between 42.0 and 42
+        # but for lofar specs it is essential that some values are int
+        # so, check specifically for those!
+        self.assertEqual(otdb_info, self.otdb_info)
+        self.assertEqual(int, type(otdb_info['LOFAR.ObsSW.Observation.ObservationControl.OnlineControl.Cobalt.Correlator.nrBlocksPerIntegration']))
+        self.assertEqual(int, type(otdb_info['LOFAR.ObsSW.Observation.ObservationControl.OnlineControl.Cobalt.Correlator.nrIntegrationsPerBlock']))
+        self.assertEqual(int, type(otdb_info['LOFAR.ObsSW.Observation.ObservationControl.OnlineControl.Cobalt.blockSize']))
 
     @mock.patch("lofar.common.util.waitForInterrupt")
     @mock.patch("lofar.messaging.messagebus.BusListener.start_listening")