Без кода трудно сказать, но QVariant docs состояние
(float, bool ok) QVariant.toDouble (self)
Возвращает вариант как число с плавающей запятой, если вариант имеет тип () Double, QMetaType.Float, Bool, ByteArray, Int, LongLong, String, UInt или ULongLong; в противном случае возвращает 0.0.
Вы уверены, что ваши QVariants относятся к одному из этих типов?
EDIT
Из вашего кода я вижу, что вы звоните QVariant.toDouble()
. Попробуйте вызвать .toDouble()
на ваших экземплярах QVariant. Например, этот код работает для меня.
>>> val1=QtCore.QVariant(12.0)
>>> val2=QtCore.QVariant(11.0)
>>> float1, ok = val1.toDouble()
>>> float2, ok = val2.toDouble()
>>> val3=float2*float1
>>> print val3
132.0