c ++数组最小最大范围分数

时间:2012-07-23 18:37:30

标签: c++ arrays floating-point comparison

我有一个在0.1429和0.1428之间波动的数组,它似乎没有真正的顶部或底部,所以这些数字可能会有所不同。

if(myarray[N-1]<myarry[N]){/*always happens*/}
if(myarray[N-1]>myarry[N]){/*never happens*/}

数字是小数,所以数字中必须有较小的分数才能在我的图表上显示曲线,例如:0.14285216

我遇到的问题是'大于''小于'&lt; &GT;我认为这是因为我没有大于1的数字(myarray [N-1]总是显示0)

我可以对我的数据执行某些操作,例如增加范围或使用其他方法来“&lt;&gt;”吗?

真的卡住了

3 个答案:

答案 0 :(得分:1)

我猜你想要做的是在数组中显示数字以便看到它们之间的差异?你永远/永远的情况是因为数组是排序的,这可能是一件好事。无论如何,要显示更多位数,您可以使用格式说明符,例如

printf ("my ith number: %.10f", myarray[i]);

这将为您myarray[i]提供10个小数位。

答案 1 :(得分:0)

是什么:

myarray与myarry(错过了第二个r和y之间的a)

直接从上面给出的代码:

if(myarray[N-1]<myarry[N]){/*always happens*/}
if(myarray[N-1]>myarry[N]){/*never happens*/}    

不应该是:

if(myarray[N-1]<myarray[N]){/*always happens*/}
if(myarray[N-1]>myarray[N]){/*never happens*/}

此外,我希望你不要使用N = 0作为这组if语句的输入。

答案 2 :(得分:0)

您可能希望将所有数字乘以7并减去1 - 这会使相对差异变大。