首页 > 代码库 > c++中的一些计算的问题
c++中的一些计算的问题
要实现小数的四舍五入,
float a = 3.456; //保留到小数点后两位float b =(int)((a * 100) + 0.5) / 100.0;
但是这样对负数不好使, 对负数的话, 这个帖子里还有办法: [C] C语言如何实现浮点数的四舍五入?
int, float, double 与QString的转化: Qt中 int ,float ,double转换为QString
QString与string的相互转换:
1、QString与int相互转换
QString qstr = QString::number(123);
int i = atoi(qstr.toStdString().c_str());
也可以这样:int i = atoi(qstr.ascii());
2、QString与string,即std::string
string s = qstr.toStdString();
QString qstr2 = QString::fromStdString(s);
关于保留几位小数并转化成字符串的几种办法:
1) 要包含 <stdlib.h>
// Trans = (int(Trans*10+0.5))/10.0; //四舍五入// char buffer[20];// gcvt(Trans, 15, buffer); //把浮点数转换成字符串// timeOutput->setText(buffer); //最大燃烧时间:[s]
// double Ll = int(Rcpp::as<double>(m_R["Ll"])*100+0.5)/100.0;//(int(Rcpp::as<double>(m_R["Ll"]))*100)/100.0; //四舍五入
// double Xit1 = int(Rcpp::as<double>(m_R["Xit1"])*100+0.5)/100.0; //(int(Rcpp::as<double>(m_R["Xit1"]))*100)/100.00;
// double De = int(Rcpp::as<double>(m_R["De"])*10+0.5)/10.0;//int(Rcpp::as<double>(m_R["De"]))*10/10.0;
//gcvt(Xit1,15,buffer);
2)
QString PoolFire::Round(double data, int prec){ std::stringstream ss; ss<<std::fixed<<std::setprecision(prec)<<data; std::string s = ss.str(); return QString::fromStdString(s);}
//使用
LOutput->setText(Round(Ll,2)); //火焰长度L:[m]
D2Output->setText(Round(Xit1,2)); //火焰倾角r:[°]
rOutput->setText(Round(De,1)); //火焰后拖量D‘:[m]
c++中的一些计算的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。