将数字转换为字符串

Converting a number into a string

本文关键字:字符串 转换 数字      更新时间:2023-10-16

所以我有一个关于将数字的所有数字相加的任务。例如,如果数字为 2367,则添加 2 + 3 + 6 + 7。

但是,问题是该数字很大(2^325),约为106位。我尝试使用双精度或浮点数,但问题是该数字仅在精确 10 位左右的 0 位之后显示为 0。

遇到的另一个问题是我不知道我是否应该将数字转换为字符串或数组,然后将字符串或数组的所有位置相加(如数组[1] + 数组[2] + ...数组[n])。

如果我是对的,如何将数字转换为数组/字符串?

谢谢!我只学了 C,所以我什至不确定如何在C++中更改它

初学者程序员在这里:(

再次感谢!

最简单的解决方案是将您的号码保留为std::string。 可以像数组一样访问std::string

要将数字字符

(如"3")转换为数字,请从中减去字符"0"。
例:

unsigned int value_of_3 = '3' - '0';

要将所有数字相加,请逐个字符遍历字符串。 对于每个数字字符,减去"0",然后将结果添加到 sum 变量中。

编辑 1:
说明性图纸。给定数字 2367 作为字符串 "2367",你有数组:

+-----+-----+-----+-----+  
| '2' | '3' | '6' | '7' |  
+-----+-----+-----+-----+  

让字符串命名为 digit_string
digit_string[1]的值为"3",如上图所示。

要获取第二个插槽的数值,请执行以下操作:

unsigned numeric_value = digit_string[1] - '0';

这会导致numeric_value == 3; .

这是对标题问题的回答,而不是描述中的后续问题。将数字转换为字符串的一种简单方法是将值输出到流并检索流的字符串内容。

int streetNumber = 2500;
string streetNumberStr;
ostringstream os;
os << streetNumber;
streetNumberStr = os.str();