QString::toDouble()
함수를 사용하여 사용자 입력의 유효성을 검사하려고합니다. documentation 함수는 다음과 같이 사용되어야한다 말합니다 : Qstring :: toDouble 사용
double QString::toDouble (bool * ok = 0) const;
/*
Returns the string converted to a double value.
Returns 0.0 if the conversion fails.
If a conversion error occurs, *ok is set to false; otherwise *ok is set to true.
*/
그래서 난 단지 사용자가 유효한 정수 또는 소수를 입력 할 수의 목적과의 잘못된 경우 오류 메시지를 던져
*ok
를 사용하려고했다. 문제는 단어를 입력해도 메시지가 항상 유효하다는 것입니다. 내가 제대로
validate
인수를 전달하고 있지 않다 느낌이
void MainWindow::checkData()
{
bool validate;
QString tempStr;
tempStr = ui->lineEditValidate->text();
double converted = tempStr.toDouble(&validate);
if (validate = false)
{
QErrorMessage validateError;
validateError.showMessage("Input is Invalid");
validateError.exec();
}
else
{
QErrorMessage worksFine;
worksFine.showMessage("valid");
worksFine.exec();
}
}
하지만 문서 나 정말 알고 충분히 고체 아니다 : 여기 내 코드는 지금까지입니다 어쩌면 QString::toDouble()
함수가 문자를 값으로 변환하는 것일 수 있습니다.
누군가 내가 잘못 갔는지 설명 할 수 있습니까? 그와
사용자가 'NaN'또는 'Inf'를 입력하면 double 값이 소수가 아니므로 'ok'가 true가됩니다. 숫자가 유한 함을 보장하는 두 번째 검증 단계가 필요할 것입니다. – cgmb