实战c++中的string系列--指定浮点数有效数字并转为string
2024-09-06 06:50:12
上一篇博客讲了好几种方法进行number到string的转换,这里再单独说一下float或是double到string的转换。
还是处于控件显示的原因。比方说要显示文件的大小,我们从server能够获得这个文件的总bytes。这样就须要我们依据实际情况是显示bytes、kb、mb等单位。
经常使用的做法就是把num_bytes/1024,这个时候往往会得到浮点型。浮点型转string也没问题,可是假设你须要保留这个浮点型的一位或是几位小数,怎么操作会方便快捷呢?
你进行了相关搜索。可是非常多人给你的回答都是要么使用cout, 要么使用printf进行格式化输出。
我们使用的是stringstream
Stringstreams allow manipulators and locales to customize the result of these operations so you can easily change the format of the resulting string
#include <iomanip>
#include <locale>
#include <sstream>
#include <string> // this should be already included in <sstream>
// Defining own numeric facet:
class WithComma: public numpunct<char> // class for decimal numbers using comma instead of point
{
protected:
char do_decimal_point() const { return ','; } // change the decimal separator
};
// Conversion code:
double Number = 0.12; // Number to convert to string
ostringstream Convert;
locale MyLocale( locale(), new WithComma);// Crate customized locale
Convert.imbue(MyLocale); // Imbue the custom locale to the stringstream
Convert << fixed << setprecision(3) << Number; // Use some manipulators
string Result = Convert.str(); // Give the result to the string
// Result is now equal to "0,120"
setprecision
控制输出流显示浮点数的有效数字个数 。假设和fixed合用的话,能够控制小数点右面的位数
可是这里须要注意的是头文件:
#include <iomanip>
最新文章
- 格式化input输入内容(金额)
- Atitit &#160;ocr识别原理 与概论 attilax总结
- JavaScript原型链和instanceof运算符的暧昧关系
- iOS 使用封装的NSLog来打印调试信息
- Java Web目录
- General Palindromic Number (进制)
- linux中ctime,mtime,atime的区别
- [转]强大的vim配置文件,让编程更随意
- bzoj 1305: [CQOI2009]dance 二分+網絡流判定
- linux 之 yum 介绍 <;转>;
- BZOJ3144 切糕
- javascript函数的基础功能
- JavaSE学习总结第14天_API常用对象4
- oracle_oracle中修改日期的显示格式
- Kubernetes 使用私服镜像
- 树莓派3b+_32位linux系统arm架构安装JDK
- ActiveMQ中Broker的应用与启动方式
- JS实现页面字体繁简转换
- 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 完美正方形
- fastclick select 闪退 bug