查找多个值的范围

时间:2013-12-02 05:29:26

标签: c++ visual-c++ logarithm

我有几个点值,我必须在带有x,y和z轴的3D图表中显示。问题是如果其中一个轴范围明显大于另一个轴,则这些点未正确显示。为了避免这种情况,我需要将所有x,y,z值都放在一个公共范围内。

e.x - 每个轴的最大值,

x - 5.8
y - 0.6
z - 43700

我需要的是什么,

x - 5.8
y - 6.0 *10^-1 
z - 4.37 *10^4

我只使用值5.8,6.6和4.37绘制图中的点,但在轴标题中使用10的幂来指示轴的实际值范围。 (例如,y轴名称显示为“y轴(10 ^ -1)”)。为此,我需要分别使用6.0和10 ^ -1值。我怎样才能做到这一点?

感谢。

1 个答案:

答案 0 :(得分:2)

您可以通过舍入十进制对数来获得指数。

void normalized_notation(double x, double& a, int& exponent)
{
  exponent = (int)floor(log10(x));
  a = x / pow(10, exponent);
}