获取数字的一部分
Getting a part of number
我有许多双精度类型。我想参与其中。例如
如果数字是 13041004236.980835我希望我的程序删除前 4 位数字并返回 1004236.980835
在 c++ 中执行此操作的最短方法是什么?
谢谢!
#include <string>
#include <sstream>
std::stringstream ss;
ss << number;
std::string str = ss.str();
str.erase( 0, 4 );
以下是使用数学的方法:
auto digits = floor(log10(number)) + 1;
number = fmod(number, pow(10, digits - 4));
您也可以使用其他答案中的字符串流方法,但您需要使用
ss << std::fixed << std::setprecision(std::numeric_limits<double>::digits10);
为了不丢失精度(假设您使用的是双精度)。
将其转换为字符串,缩短并转换回来。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 查找最接近的大于当前数字的数字的索引
- 找到两对数字,使它们的乘积的绝对差最小化
- 我想做一个彼此不同但重复出现的数字
- 将数字转换为字母(例如:123 转换为一二三)
- C++如何计算用户输入的数字中的偶数位数
- 如何在C++中确定文本文件中的元素是字符还是数字
- C++:如何使函数只返回作为列表一部分的字符串
- 打印数字图案
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 如何检查一个c++字符串中有多少相同的字符/数字
- 如何在C++中创建 2d 数组,其中一部分包含循环计数器,另一部分包含数字列表?
- 获取数字的一部分
- C++:如何将 N 参数传递给 N 可以是 0 >任意数字的函数?(该函数已作为外部库的一部分存在)