利用函数重载把用浮点数表示的时长转换成时分秒
时间: 2024-09-13 07:02:37 浏览: 28
Python字符串转换成浮点数函数分享
5星 · 资源好评率100%
函数重载是允许在同一个作用域内存在多个同名函数,但这些函数的参数列表必须不同,可以是参数的数量不同,也可以是参数的类型不同。利用函数重载可以把用浮点数表示的时长转换成时分秒,具体做法是定义多个同名函数,但每个函数接受不同类型的参数或者参数数量不同。
例如,我们可以定义两个重载的函数,一个接受一个浮点数参数,直接将这个浮点数当作总秒数来转换;另一个接受两个浮点数参数,其中一个代表分钟,另一个代表秒数。
下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <iomanip> // 用于setprecision
// 将浮点数秒数转换为时分秒格式
void convertToTime(float totalSeconds) {
int hours = static_cast<int>(totalSeconds) / 3600; // 计算小时数
int minutes = (static_cast<int>(totalSeconds) % 3600) / 60; // 计算剩余分钟数
int secs = static_cast<int>(totalSeconds) % 60; // 计算剩余秒数
std::cout << hours << "小时 " << minutes << "分钟 " << secs << "秒" << std::endl;
}
// 将浮点数分钟和秒数转换为时分秒格式
void convertToTime(float minutes, float seconds) {
int totalSeconds = static_cast<int>(minutes) * 60 + static_cast<int>(seconds); // 计算总秒数
convertToTime(totalSeconds); // 调用之前定义的函数
}
int main() {
float timeInSeconds = 3725.5; // 浮点数秒数表示的时长
float timeInMinsAndSecs = 62.5; // 浮点数表示的分钟和秒数
convertToTime(timeInSeconds); // 调用第一个重载函数
convertToTime(static_cast<int>(timeInMinsAndSecs), timeInMinsAndSecs - static_cast<int>(timeInMinsAndSecs)); // 调用第二个重载函数
return 0;
}
```
这段代码中,我们定义了两个`convertToTime`函数,一个接受一个浮点数参数,另一个接受两个浮点数参数。在`main`函数中,我们分别使用了这两种不同的方式来调用`convertToTime`函数,实现了将浮点数表示的时长转换成时分秒的功能。
阅读全文