开发笔记

  • 首页
  • 工具箱
三味线的博客
  1. 首页
  2. C++
  3. 正文

Qt(C++)四舍五入

2019-04-23 2668点热度 9人点赞 0条评论

Qt现在是四舍六入五成双,要想四舍五入得自己想办法,实现如下:

#include <QtMath>
#include <QDebug>

double c1=3.435;
double c2=3.445;
double c3=3.4351;
double c4=3.4451;
double c5=-3.445;
qDebug()<<c1<<"->"<<getPrecision(c1,2);
qDebug()<<c2<<"->"<<getPrecision(c2,2);
qDebug()<<c3<<"->"<<getPrecision(c3,2);
qDebug()<<c4<<"->"<<getPrecision(c4,2);
qDebug()<<c5<<"->"<<getPrecision(c5,2);

double getPrecision(double value,int pre)
{
    double offset=0.5;
    if(pre<1) return value;
    double prod=qPow(10.0,pre);
    if(value<0) offset=-offset;
    int tmp=(int)(value*prod+offset);
    double ret=tmp/prod;
    return ret;
}

输出:

3.435 -> 3.44
3.445 -> 3.45
3.4351 -> 3.44
3.4451 -> 3.45
-3.445 -> -3.45

思路:

1.小数点后移到要四舍五入的地方;

2.将数据加上0.5(负数减),则小数点后面为5以上就会进位;

3.转成int,利用向下取整去掉小数点后面的数;

4.前移小数点,得到四舍五入后的值;

标签: C++
最后更新:2020-06-06

三味线

不吃咸鱼的喵

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

Captcha Code

COPYRIGHT © 2022 voidcat.cn. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备18010095号-1