静态将(int)强制转换为(float)无小数
Static Cast (int) to (float) no decimals
我试图使用static_cast
将2个整数转换为浮点数。问题是,当我做数学计算时,我得到的是4而不是4.00。
下面我做了一个代码示例:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
int num = 4,
den = 1;
cout << static_cast<float>(num) / static_cast<float>(den);
}
如果我做错了,那么请指出我错在哪里。也请提及如果有办法得到4.00而不是仅仅4?
结合Nathan和Eelke所写的内容,使用与setprecision参数操纵器一起固定的浮点格式标志,可在iomanip库中使用。
下面是你的代码在做了必要的修改后的样子:
#include <iostream>
#include <iomanip>
int main()
{
int num = 4,
den = 1;
std::cout << std::fixed << std::setprecision(2) <<
static_cast<float>(num) / static_cast<float>(den);
return 0;
}
相关文章:
- C++将浮点指针值舍入为小数位数
- 从给定的 I 和 D 序列中形成最小数
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 没有从阵列<float>到阵列<int>的可行转换
- 数组下标的类型"float*[float]"无效
- 使用 std::index_sequence 初始化具有固定大小数组成员的 POD 结构容器
- 计算 PI 最多 42 位小数
- 为什么我必须添加一个小数才能在C++中正确计算此数学
- 返回浮点数的小数位数
- 没有合适的构造函数可以从"float"转换为"_D3DCOLORVALUE"
- 为什么 std::cout 打印浮点数、双精度和长双精度到相同的小数精度?
- 为什么我会收到此错误?无法将 {lb, ub} 从<大括号括起来的初始值设定项列表>转换为 float(**)(float*, int)
- 将 **float array 从 C++ Dll 传递给 python
- 在数学上将浮点数四舍五入到 N 位小数
- 打印双精度的整个非小数部分
- 为什么Float和double在小数位置不识别0
- C#C Float和JavaScript号码的小数
- 使用Float或Double类型时不显示小数
- 静态将(int)强制转换为(float)无小数