网友发了个贴,原贴:
要写一个函数,传三个参数,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; }
|
阅读(4962) | 评论(1) | 转发(0) |