如何(安全地)除最大值,得到浮点值?
How can I (safely) divide a maximum value, resulting in a floating point value?
我要计算转换因子。为此,我必须将例如ushort的最大值除以uchar的最大值。
我想动态地做到这一点,通过将参数传递给函数或类型名。然后我要选择最大值并执行计算。
有两个问题:
- 如何动态选择最大值?
- 我如何安全地划分这两个值?
已知所有值都适合double型的范围。
理想情况下,我想这样做:
double x = numeric_limits<T>::max / numeric_limits<T2>::max;
你的建议应该行得通:
#include <iostream>
#include <limits>
template <typename T, typename T2>
double get_ratio()
{
return static_cast<double>(std::numeric_limits<T>::max()) / std::numeric_limits<T2>::max();
}
int main()
{
auto ratio = get_ratio<unsigned short, unsigned char>();
std::cout << ratio << 'n';
return 0;
}
演示相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 使用指针从C++中的数组中获取最大值
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 在二维数组中查找最小值和最大值?
- 整数溢出,最大值为 pow(10,19)
- 以C++递归方式查找向量中的最大值
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- 我的 If Else 语句无法在向量 (C++) 中提供最大值
- 如何使用可变参数模板类使用模板元编程获得最大值
- C++不同的最小最大值实现
- Vec3b:r/g/b 颜色的最大值为 254,而不是 255
- CUDA - 将 float3 数组的 (x,y,z) 分量的最小值/最大值分开?
- 是否可以将无符号 int 的最大值转换为 int 并将结果转换为 -1?
- 查找包含 N 个元素的数组的最小值和最大值
- 井字游戏具有奇怪行为的最小最大值算法(C++)
- 错误C++在Visual Studio 2019中使用numeric_limits的长双精度最小值/最大值
- 将 -1 分配给无符号 int 以获得最大值是否安全