To do this you must create a new widget derived from the QTable, and set these constraits manually. 

[Here][1] is an example how to sort columns:

    import sys
    import random
    from PyQt4 import QtCore, QtGui
    
    class QCustomTableWidgetItem (QtGui.QTableWidgetItem):
        def __init__ (self, value):
            super(QCustomTableWidgetItem, self).__init__(QtCore.QString('%s' % value))
    
        def __lt__ (self, other):
            if (isinstance(other, QCustomTableWidgetItem)):
                selfDataValue  = float(self.data(QtCore.Qt.EditRole).toString())
                otherDataValue = float(other.data(QtCore.Qt.EditRole).toString())
                return selfDataValue < otherDataValue
            else:
                return QtGui.QTableWidgetItem.__lt__(self, other)
    
    class QCustomTableWidget (QtGui.QTableWidget):
        def __init__ (self, parent = None):
            super(QCustomTableWidget, self).__init__(parent)
            self.setColumnCount(2)
            self.setRowCount(5)
            for row in range(self.rowCount()):
                self.setItem(row, 0, QCustomTableWidgetItem(random.random() * 1e4))
                self.setItem(row, 1, QtGui.QTableWidgetItem(QtCore.QString(65 + row)))
            self.setSortingEnabled(True)

If you want to set decimal precision you must do this in similar way.


  [1]: http://stackoverflow.com/a/25539830/3416863