QString::number(Str,'f',pos);
时间: 2024-06-07 21:08:10 浏览: 12
这一个Qt中的函数,它将一个浮点数转换成带有指定小数点后位数的字符串。其中,Str代表要转换的浮点数,'f'代表以小数点后的位数填充,pos代表小数点后的位数。例如,如果将一个浮点数1.234567转换成小数点后两位的字符串,可以这样调用函数:QString::number(1.234567,'f',2); 函数会返回字符串"1.23"。
相关问题
QMap<int, QString> mapValue; //拼接map QStringList unitList = { "m", "m/s", "°", "Km/h","rpm","bar","mbar","°C","","Kg","V","A","正常","Pa" }; for (QString unit : unitList) { mapValue.insert(0, QString::number(str_fly.flyheight) + unit); mapValue.insert(1, QString::number(str_fly.flyheight) + unit); mapValue.insert(2, QString::number(str_fly.flyheight) + unit); if (unit == "Km/h") { mapValue.insert(3, QString::number(str_fly.airspeed * 3.6) + unit); } else if (unit == "m/s") { mapValue.insert(4, QString::number(str_fly.liftspeed) + unit); mapValue.insert(5, QString::number(str_fly.earthspeed) + unit); mapValue.insert(51, QString::number(str_fly.groundspeed) + unit); mapValue.insert(55, QString::number(str_fly.sidoffsetspeed) + unit); // 4:侧偏移速度 mapValue.insert(57, QString::number(str_fly.sidoffsetspeed) + unit); mapValue.insert(97, QString::number(str_fly.groundspeed) + unit); } }有问题请修改
修改后的代码如下:
```
QMap<int, QString> mapValue;
QStringList unitList = { "m", "m/s", "°", "Km/h","rpm","bar","mbar","°C","","Kg","V","A","正常","Pa" };
for (QString unit : unitList) {
if (unit == "Km/h") {
mapValue.insertMulti(3, QString::number(str_fly.airspeed * 3.6) + unit);
} else if (unit == "m/s") {
mapValue.insertMulti(4, QString::number(str_fly.liftspeed) + unit);
mapValue.insertMulti(5, QString::number(str_fly.earthspeed) + unit);
mapValue.insertMulti(51, QString::number(str_fly.groundspeed) + unit); // 4:侧偏移速度
mapValue.insertMulti(55, QString::number(str_fly.sidoffsetspeed) + unit);
mapValue.insertMulti(57, QString::number(str_fly.sidoffsetspeed) + unit);
mapValue.insertMulti(97, QString::number(str_fly.groundspeed) + unit);
} else {
mapValue.insertMulti(0, QString::number(str_fly.flyheight) + unit);
mapValue.insertMulti(1, QString::number(str_fly.flyheight) + unit);
mapValue.insertMulti(2, QString::number(str_fly.flyheight) + unit);
}
}
```
主要的修改包括:
1. 使用 `QMap::insertMulti()` 函数来避免键值重复。
2. 添加一个默认分支,以确保所有可能的单位都被处理。
3. 将 `mapValue` 定义在循环外部,以便在其他地方使用。
QString::number
`QString::number`是Qt框架中的一个函数,用于将不同类型的数字转换为字符串。其函数原型为:
```
QString QString::number(int n, int base = 10)
QString QString::number(uint n, int base = 10)
QString QString::number(long n, int base = 10)
QString QString::number(ulong n, int base = 10)
QString QString::number(long long n, int base = 10)
QString QString::number(ulonglong n, int base = 10)
QString QString::number(float n, char format = 'g', int precision = 6)
QString QString::number(double n, char format = 'g', int precision = 6)
```
其中,参数n表示要转换的数字,参数base表示输出的进制数(默认为10进制)。函数返回一个QString类型的字符串。