c++ - 将秒(时钟)转换为十进制格式

标签 c++ time format output

我正在制作秒表,我需要像这样输出秒数:“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/

相关文章:

java - 时间差 - 从午夜之前到午夜之后,无日期

c++ - 实例化和特化的定义相互依赖

c++ - 什么是 "MFC Dialog Extension"? (Windows/C++新手-Linux背景)

ruby rails 数据库时间

python - 在 Python 中从 datetime.now() 中减去 SQL DATETIME

C# 将字符串转换为同时包含 ","和 "."的 float

Python 浮点格式

java - 当字符串长度变化时使用 String.format()

c# - 通过 COM 从 C++ 解决方案调试 C# dll

c++ - Windows XP 上的 GDI+ 问题