C++ String 转int 不保留小数
时间: 2023-08-16 15:54:49 浏览: 175
在C++中,可以使用`std::stoi()`函数将字符串转换为整数,并且该函数会自动忽略小数部分。以下是一个示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str = "123.45";
int num = std::stoi(str); // 将字符串转换为整数
std::cout << num << std::endl; // 输出:123
return 0;
}
```
在上面的示例中,`std::stoi()`函数将字符串"123.45"转换为整数123,并且小数部分被忽略。
需要注意的是,`std::stoi()`函数在转换过程中会忽略字符串中的非数字字符,如果字符串无法转换为有效的整数,则会抛出`std::invalid_argument`或`std::out_of_range`异常。因此,在使用`std::stoi()`函数进行转换时,需要确保字符串中只包含有效的整数字符。
相关问题
C++ int 转String 不保留小数
在C++中,可以使用`std::to_string()`函数将整数转换为字符串,并且该函数会自动忽略小数部分。以下是一个示例:
```cpp
#include <iostream>
#include <string>
int main() {
int num = 123;
std::string str = std::to_string(num); // 将整数转换为字符串
std::cout << str << std::endl; // 输出:123
return 0;
}
```
在上面的示例中,`std::to_string()`函数将整数123转换为字符串"123",并且小数部分被忽略。
需要注意的是,`std::to_string()`函数只能用于将整数转换为字符串,如果要转换浮点数或其他类型的数字,需要使用其他方法(例如`sprintf`函数)来进行转换。
C++float转string保留两位小数
你可以使用 `std::stringstream` 类来将浮点数转换为字符串并保留指定的小数位数。以下是一个示例代码:
```c++
#include <iostream>
#include <sstream>
#include <iomanip> // for std::setprecision() and std::fixed
int main() {
float num = 3.14159;
std::stringstream ss;
ss << std::fixed << std::setprecision(2) << num;
std::string str = ss.str();
std::cout << str << std::endl; // "3.14"
return 0;
}
```
在上面的代码中,我们使用 `std::fixed` 来指定使用固定小数位数(不使用科学计数法),使用 `std::setprecision(2)` 来指定保留两位小数,最后使用 `ss.str()` 将流中的内容转换为字符串。
阅读全文