gpt4 book ai didi

c++ - 如有必要,从字符串中删除尾随的 0 和小数

转载 作者:行者123 更新时间:2023-11-30 04:05:55 25 4
gpt4 key购买 nike

我正在尝试从小数中删除尾随零,如果没有尾随零则删除小数。

此字符串由 boost 的 gmp_float 字符串输出 fixed 产生。

这是我的尝试,但我得到了 std::out_of_range:

string trim_decimal( string toFormat ){
while( toFormat.find(".") && toFormat.substr( toFormat.length() - 1, 1) == "0" || toFormat.substr( toFormat.length() - 1, 1) == "." ){
toFormat.pop_back();
}
return toFormat;
}

如果存在小数,如何删除尾随 0,如果小数点后没有更多 0,如何删除小数?

最佳答案

您需要将其更改为:

while( toFormat.find(".")!=string::npos   // !=string::npos is important!!!
&& toFormat.substr( toFormat.length() - 1, 1) == "0"
|| toFormat.substr( toFormat.length() - 1, 1) == "." )
{
toFormat.pop_back();
}

这里的关键是添加!=string::npos。找不到时,std::basic_string::find()将返回 std::basic_string::npos ,它不等于 false(不是您所期望的)。

static const size_type npos = -1;

关于c++ - 如有必要,从字符串中删除尾随的 0 和小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23088638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com