我正在制作秒表,我需要像这样输出秒数:“9.743 秒”。
我有开始时间、结束时间和时钟测量的差异,并计划通过将差异除以 1000 来实现小数。但是,无论我尝试什么,它总是作为一个整体输出数字。这可能是我忽略的小东西,但我不知道是什么。 这是我的代码:
#include "Stopwatch.h"
#include <iostream>
#include <iomanip>
using namespace std;
Stopwatch::Stopwatch(){
clock_t startTime = 0;
clock_t endTime = 0;
clock_t elapsedTime = 0;
long miliseconds = 0;
}
void Stopwatch::Start(){
startTime = clock();
}
void Stopwatch::Stop(){
endTime = clock();
}
void Stopwatch::DisplayTimerInfo(){
long formattedSeconds;
setprecision(4);
seconds = (endTime - startTime) / CLOCKS_PER_SEC;
miliseconds = (endTime - startTime) / (CLOCKS_PER_SEC / 1000);
formattedSeconds = miliseconds / 1000;
cout << formattedSeconds << endl;
system("pause");
}
就像我说的,输出是整数。假设它计时 5892 个时钟:输出将为“5”。
最佳答案
整数之间的除法仍然是一个整数。将您的一个除法参数转换为实数类型( double 或 float )并分配给另一个实数类型的变量。
double elapsedSeconds = (endTime - startTime) / (double)(CLOCKS_PER_SEC);
cout << elapsedSeconds << endl;
关于c++ - 将秒(时钟)转换为十进制格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31689237/