首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YAxis计算图

YAxis计算图
EN

Stack Overflow用户
提问于 2013-09-11 13:22:40
回答 1查看 84关注 0票数 0

假设我有一个5值(a = 155, b = 200, c = 250, d = 300, e 0 345)的简单线条图

我需要一种方法来计算Y轴上的值,这样的话,这些值看起来很好。我也想看看这些小步骤。

如果我使用一个简单的公式,我会这样做:

代码语言:javascript
复制
MaxValue - Minvalue = difference 
300- 900 = 600

5个步骤:600/5 = 120 per step

这将导致Y轴的值:

代码语言:javascript
复制
Y0 = 200.0 (Rounding off to 200)    
Y1 = 360.0 (Rounding off to 400)    
Y2 = 520.0 (Rounding off to 600)    
Y3 = 680.0 (Rounding off to 700)    
Y4 = 840.0 (Rounding off to 900)    
Y4 = 1000.0 (Rounding off to 1000)

实际上,我想要的是的值:

代码语言:javascript
复制
Y0 = 200    
Y1 = 400    
Y2 = 600    
Y3 = 800    
Y4 = 1000

但我该怎么计算呢?

在计算之前,我不知道数值的大小,它也可能是数千,或几十。

EN

回答 1

Stack Overflow用户

发布于 2013-09-11 13:48:54

不完全是你所期望的,但可能会给你一个想法:

代码语言:javascript
复制
const int N = 6;
double vals[N] = {200.0, 360.0, 520.0, 680.0, 840.0, 1000.0};
for (int i = 0; i < N; i++) {
    double factor = pow(10.0, floor(log10(vals[i])));
    double v =  floor(vals[i] / factor + 0.5) * factor;
    std::cout << vals[i] << " " << v << std::endl;
}

对不起,它在C++中,但是您可以很容易地将它翻译成Java。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18742420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档