c++ 一个最大为三位数的变量,保留其百位和十位,个位四舍五入,百位没有值显示为0
时间: 2024-10-12 14:13:01 浏览: 9
在C++中,你可以通过将整数转换成字符串,然后处理字符串来实现这个需求。首先,你需要获取百位、十位和个位的数值,然后进行四舍五入并保证百位始终为0(如果小于1)。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
#include <cmath>
int round_to_nearest(int num, int precision) {
return static_cast<int>((static_cast<double>(num) + precision / 2.0) / precision);
}
std::string format_number(int number) {
std::string str = std::to_string(number);
if (str.length() > 3) {
str = str.substr(0, 3); // 只取前三位
}
int hundred = std::stoi(str.substr(0, 1)); // 百位
int ten = std::stoi(str.substr(1, 1)); // 十位
int one = round_to_nearest(std::stoi(str.substr(2, 1)), 1); // 个位四舍五入
if (hundred < 10) {
hundred = '0'; // 如果百位为0,则用字符表示
} else {
hundred = char(hundred + '0');
}
return std::string{hundred} + std::string{ten} + std::to_string(one);
}
int main() {
int input = 456;
std::cout << "Formatted number: " << format_number(input) << std::endl;
return 0;
}
```
在这个例子中,`format_number`函数会处理输入的数字,并返回一个格式化的字符串,保留百位和十位,个位四舍五入。