将秒(时钟)转换为十进制格式
Converting seconds (clocks) to decimal format
我正在制作一个秒表,我需要像这样输出秒:"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;
formattedSeconds =(double) miliseconds / 1000;
它会给你实数输出
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 将"打开的CV图像"中的"颜色"转换为整数格式
- TDateTime格式在C++Builder中不会更改
- visual在c++中将十进制数转换为二进制数
- C++十进制到二进制,如何转换
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 检查不带转换的扫描格式
- 十进制到八进制递归C++.以标准::字符串格式输出
- 以C++格式将十六进制字符串转换为十进制数
- 将大端格式的位融合为预期的十进制值,同时忽略第一个位
- 十进制格式的日期之间的差异
- 使用堆栈将字符串格式的十进制转换为双精度
- 在 c++ 中使用 setfill() 以特定格式打印十进制数
- 十进制数字的区域设置感知编辑控件子类化(格式[sign][xxx..][decimal separator][yy.])
- 十进制格式,C++更优雅
- Mongo DB C++格式错误十进制,将".0"添加到末尾,在转换器到 JSON
- 将IPv6地址转换为Internet标准点分十进制格式的ASCII字符串
- 将秒(时钟)转换为十进制格式
- 以十进制数的二进制格式计算 1 的数量
- 在 cout 中将数字十进制格式显示为指数