解析C++ 浮点数的格式化显示

时间:2021-05-19

代码如下所示:
复制代码 代码如下:
#include <stdlib.h>
#include <string>
#include <windows.h>
#include <stdio.h>
#include <iostream>
#include <limits>
#include <sstream>
using namespace std;

string do_fraction(long double val, int decplaces=3)
{
ostringstream out;
char DECIMAL_POINT='.'; // 欧洲用法为','
int prec=numeric_limits<long double>::digits10; // 18
out.precision(prec);//覆盖默认精度
out<<val;
string str= out.str(); //从流中取出字符串
size_t n=str.find(DECIMAL_POINT);
if ((n!=string::npos) //有小数点吗?
&& (str.size()> n+decplaces)) //后面至少还有decplaces位吗?
{
str[n+decplaces]='\0';//覆盖第一个多余的数
}
str.swap(string(str.c_str()));//删除nul之后的多余字符

return str;
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章