C++中删除float转字符串后尾部多余的0
2017-11-04 21:58
1271 查看
std::string truncatTailingZeroes(std::string s)
{
//删除尾部多余的0,如果尾部以点结束,也删除小数点
std::string tmps = s;
if(tmps.find(".")>0)
{
size_t fp = tmps.rfind(".");
size_t f = tmps.rfind("0");
while (f > fp) {
if (f != -1) {
tmps = tmps.erase(f);
}
f = tmps.rfind("0");
}
fp = tmps.rfind(".");
if(fp == tmps.size() - 1)
{
tmps = tmps.erase(fp);
}
return tmps;
}
}
因为float类型的数据使用std::to_string()转成std::string后尾部分多出很多零,这在使用字符串发送数据时会增加数据长度。所以要想办法把尾部多的零删除,如果小数点都是零,则把最后的小数点也删除。自已写了一个方法.
{
//删除尾部多余的0,如果尾部以点结束,也删除小数点
std::string tmps = s;
if(tmps.find(".")>0)
{
size_t fp = tmps.rfind(".");
size_t f = tmps.rfind("0");
while (f > fp) {
if (f != -1) {
tmps = tmps.erase(f);
}
f = tmps.rfind("0");
}
fp = tmps.rfind(".");
if(fp == tmps.size() - 1)
{
tmps = tmps.erase(fp);
}
return tmps;
}
}
因为float类型的数据使用std::to_string()转成std::string后尾部分多出很多零,这在使用字符串发送数据时会增加数据长度。所以要想办法把尾部多的零删除,如果小数点都是零,则把最后的小数点也删除。自已写了一个方法.
相关文章推荐
- [C++] 批量删除文件名多余的一个相同字符串
- C语言实现删除字符串多余空格
- 删除特定位置前面的字符串c++代码实例及运行结果
- 删除字符串中多余的空格
- C++ 删除字符串的两种实现方式
- 新浪面试题:删除字符串中多余的空格
- C++实现输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
- 删除特定位置前面的字符串c++代码实例及运行结果
- C/C++中int/long/float/double数值类型与字符串互相
- 北航机试-字符串的查找删除(C++)
- C++学习记录11--字符串中删除特定元素
- C++第17周项目2——用指针玩字符串(6)去多余空格
- 函数备忘-Trim() -功能删除字符串首部和尾部的空格
- C语言删除一个字符串中的多余空格字符
- 删除特定位置前面的字符串c++代码实例及运行结果
- PHP学习笔记--字符串操作 作者:yezi33 字符串的整理: trim():除去字符串开头和末尾的空格或其他字符。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空
- C++ 删除字符串的首尾空字符
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- 编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。
- C++删除字符串中的子串