void CalculatorDialog::processResult(qreal newValue, QString opSymbol) { emit calculated( QString::number( lastResult ).append(" ").append( opSymbol) .append(" ").append( QString::number( operand ) ) .append(" = ").append( QString::number( newValue ) ), newValue); lastResult = newValue; }
/** * @brief Функция вычисления результата * @param dVal второй аргумент */ void Calculator::calc(double dVal) { switch (oper) { case Add: dResult += dVal; break; case Sub: dResult -= dVal; break; case Mult: dResult *= dVal; break; case Div: dResult /= dVal; break; } emit calculated(dResult); }
/** * @brief Check it it's a valid Tox ID by verifying the checksum * @return True if it is a valid Tox ID, false otherwise. */ bool ToxId::isValid() const { if (toxId.length() != TOX_ADDRESS_SIZE) { return false; } const int size = TOX_PUBLIC_KEY_SIZE + NOSPAM_BYTES; QByteArray data = toxId.left(size); QByteArray checksum = toxId.right(CHECKSUM_BYTES); QByteArray calculated(CHECKSUM_BYTES, 0x00); for (int i = 0; i < size; i++) { calculated[i % 2] = calculated[i % 2] ^ data[i]; } return calculated == checksum; }
/** * @brief Функция очистки результата */ void Calculator::clear() { dResult = 0; emit calculated(dResult); }
IOperand const* Int32::operator/(IOperand const &rhs) const { eOperandType type = (getPrecision() >= rhs.getPrecision()) ? getType() : rhs.getType(); return _factoryOperand.createOperand(type, calculated(_sValue, rhs.toString(), type, "div")); }