Qt Q使用toShort将字符串缩短

Qt Q使用toShort将字符串缩短,qt,qstring,qlineedit,Qt,Qstring,Qlineedit,我想在尝试此代码时将QString转换为short ui->lineEdit->text().toShort(); 对于text=20,它运行良好,但对于value=20.5,它返回“0” 但我需要值=20。如何解决此问题?返回0的原因是小数点对于short数据类型是无效字符 如果您希望能够将浮点数从QString转换为整数,则需要先将文本转换为float或double,然后使用正常舍入/截断转换为short返回0的原因是小数点对于short数据类型无效 如果您希望能够将浮点数从Q

我想在尝试此代码时将QString转换为short

ui->lineEdit->text().toShort();
对于text=20,它运行良好,但对于value=20.5,它返回“0”


但我需要值=20。如何解决此问题?

返回0的原因是小数点对于
short
数据类型是无效字符


如果您希望能够将浮点数从
QString
转换为整数,则需要先将文本转换为
float
double
,然后使用正常舍入/截断转换为
short
返回0的原因是小数点对于
short
数据类型无效


如果您希望能够将浮点数从
QString
转换为整数,则需要先将文本转换为
float
double
,然后使用正常舍入/截断转换为
short

使用转换字符串:

ui->lineEdit->text()->split(".")[0].toShort(0,10);

使用该转换字符串:

ui->lineEdit->text()->split(".")[0].toShort(0,10);

在lineEditQString::number(ui->lineEdit->text().toInt()).ToSort()中不允许小数点;我尝试了这段代码,但内联uu int16 GetInteger16FromStatic(QLineEdit*lineEdit){QString text;uu int16 nValue=0;nValue=QString::number(lineEdit->text().toDouble()).toShort();return nValue;}不允许在lineEditQString::number(ui->lineEdit->text().toInt())中使用小数点。toShort();我尝试了这段代码,但内联uu int16 GetInteger16FromStatic(QLineEdit*lineEdit){QString text;uu int16 nValue=0;nValue=QString::number(lineEdit->text().toDouble()).toShort();return nValue;}