Qt中数据的圆整与反转处理

scorlw 发布于

Qt中数据的圆整与反转处理

Qt

数据的圆整有去尾法、四舍五入法与进一法,同时有时候需要对数据做反转的操作。

一、核心代码

经过测试,Qt5中,将double赋值给int的时候采用的是去尾法。

所以代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
switch (dataRound)
{
//不操作
case 0:
result = data;
break;
//去尾法
case 1:
result = res_temp;
break;
//四舍五入法
case 2:
result = qRound(data);
break;
//进一法
case 3:
result = res_temp + 1;
break;
//默认不操作
default:
result = data;
break;
}

数据的反转可以通过字符串反转的方法:

1
2
3
4
5
6
7
8
9
10
//QString data_s = QString::number(data);//使用这种方式会丢失精度,double默认显示六位
QString data_s = ui->dataEdit->text();
qDebug() << data_s;
QString r;
for(int i = 0; i < data_s.length(); ++i)
{
r = data_s[i] + r;//注意顺序
}
qDebug() << r;
ui->Reverse_label->setNum(r.toDouble());

注:暂时没有找到直接修改double精度的方法,找到的都是将其转换为字符串然后设置精度的。

完整代码见:https://download.csdn.net/download/scorlw/13159968