首页
登录 | 注册

【原】对double小数四舍五入并转换成字符串

网友发了个贴,原贴:http://topic.csdn.net/u/20090107/17/8d851ec9-e0e9-4cdb-b787-c9b5436090bc.html?seed=822205518
要写一个函数,传三个参数,double,int ,bool  三个参数。   

作用就是:传double进来 用int来取小数位数  ,bool用来确认是否要四舍五入。

        返回的为cstring的
例如:
如果传一个double的 如12345.6789 

然后传一个int 进来 如 3

然后要使这个double保留3位小数 12345.679

Bool的是控制是否四舍五入。

返回的为cstring 的值。
=======================================================
随便写了个 返回用string替代  效率没咋考虑
程序如下:
 


 

#include<stdio.h>
#include<iostream>
using namespace std;

string doubleConvert(double dval,int nlen ,bool bval)
{
    char buf[100];
    sprintf(buf,"%lf",dval);
    int buf_len = strlen(buf);
    int point_pos = char_traits<char>::find(buf, buf_len,'.')-buf;
    int total_len = point_pos+nlen;
    if ( buf_len > total_len && bval && buf[total_len+1]>='5') buf[total_len]+=1;
    buf[total_len+1] = '\0';
    return buf;
}

int main()
{
    double dval = 12345.6789;
    string str = doubleConvert(dval,3,true);
    cout << str.c_str();
    return 0;
}


相关文章

  • 1. 装箱.拆箱还是别名2. 数值类型之间的相互转换3. 字符的 ASCII 码和 Unicode 码4. 数值字符串和数值之间的转换5. 字符串和字符数组之间的转换6. 字符串和字节数组之间的转换7. 各种数值类型和字节数组之间的转换8. ...
  • 基于指纹的音乐检索 - Java与C之间的socket通信
    最近正在开发一个基于指纹的音乐检索应用,算法部分已经完成,所以尝试做一个Android App.Android与服务器通信通常采用HTTP通信方式和Socket通信方式.由于对web服务器编程了解较少,而且后台服务器已经采用原始socket ...
  • 实现python与java之间socket通信,其中数据带Decimal数据类型. Decimal数据类型在网络传输中用的是可转换成string的bytes,因此 编码过程:Decimal->String->bytes-> ...
  • GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值. GUID 的格式为"xxxxxxxx- ...
  • 参数为空取全部数据的几种做法
    [摘要] 当通过多个参数对数据进行过滤并且不选择某个参数时,希望依然能够查询出其他带条件的数据,也就是参数为空时忽略掉该条件,点击 参数为空取全部数据的几种做法查看具体的实现方法以及特殊场景的一些操作 润乾报表中支持用户通过参数对数据过滤, ...
  • 概要     不管你是处理财务交易还是计划着下一步的行动,你都要知道怎样在Java中建立,使用和显示日期.这需要你简单的查阅一下相应类的API参考:一个日期可以创建3个相关类的对象.这篇文章告诉你你想要知道的内容.     Java统计从1 ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.012 s.
京ICP备10005923号