码迷,mamicode.com
首页 > 编程语言 > 详细

c++ 值转换

时间:2018-01-24 12:36:21      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:class   ace   res   deb   bit   its   字符串转换   函数   rom   

1.double,float 四舍五入,保留小数位数。 

void MainWindow::on_pushButton_clicked()
{
   double number=3.141592;
   double result=MyRound(number,3);
   qDebug()<<result;//3.142
}
#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;
double MainWindow::MyRound(double number,unsigned int bits)
{
    stringstream ss;
    ss << fixed << setprecision(bits) << number;
    ss >> number;
    return number;
}

2.std::to_string 数字转换成string,C++11才支持此函数,转换后小数位数是6位,无法控制小数保留位数。使用的时候可以先四舍五入后,再使用to_string 转换字符串,截取。
     

 float number=3.14;   
   std::string str=std::to_string(number);//3.140000  
   qDebug()<<QString::fromStdString(str);

         获得指定保留小数位数的字符串
        

void MainWindow::on_pushButton_clicked()
{
   float number=3.141592;
   number=MyRound(number,3);//3.142
   std::string str=std::to_string(number);//3.142000
   str=str.substr(0,str.find(.)+4);//"3.142"
   qDebug()<<QString::fromStdString(str);
}

float MainWindow::MyRound(float number,unsigned int bits)
{
    stringstream ss;
    ss << fixed << setprecision(bits) << number;
    ss >> number;
    return number;
}


 3.std::stoi/stol/stoll 函数,字符串转换成整数,但不会四舍五入。       

  string str1="12.76";
   int i1=stoi(str1);//12
   qDebug()<<i1;


 

  

c++ 值转换

标签:class   ace   res   deb   bit   its   字符串转换   函数   rom   

原文地址:https://www.cnblogs.com/ike_li/p/8340725.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!