グラフを書くときの上限値を出すときに例えば最大値が52.6とかだったら53というようなキリのいい数字で締めたらキレイですよね。
そういうときのキリの良い数字を求める計算方法です
C#でチャートコントロールを使うなら
こんな感じで設定
//Y軸最小値、最大値、目盛間隔の設定
chart1.ChartAreas[0].AxisX.Maximum = MAXVALUE_X ;
chart1.ChartAreas[0].AxisY.Maximum = MAXVALUE _Y;
Contents
上位2桁でキリの良い上限値を求める方法
【例】
- 52.6753→53.0000
- 0.124→0.200
- 15473→16000
C#で上2桁のキリ番を計算
double dblVal_In = 52.6753;//←暫定的な最大値
strVal = dblVal_In.ToString(“0.0E+0”);
intPos = strVal.IndexOf(“E”) + 1;
dblVal_new = double.Parse(strVal);
if (dblVal_new < dblVal_In)
{
dblVal_new = dblVal_new + Convert.ToDouble(“0.1” + *注Mid(strVal, intPos));
}
double MAXVALUE = dblVal_new;//←キリの良い数字
VB6(VBA)で上位2桁のキリ番を計算
strVal = 52.6753′←暫定的な最大値
strVal = Format$(dblVal_In, “0.0E+##”)
intPos = InStr(1, strVal, “E”)
dblVal_new = CDbl(strVal)
If dblVal_new < dblVal_In Then
dblVal_new = dblVal_new + CDbl(“0.1” & mID$(strVal, intPos))
End If
MAXVALUE = dblVal_new;//←キリの良い数字
上位1桁でキリの良い上限値を求める方法
【例】
- 52.6753→60.0000
- 0.124→1.000
- 15473→20000
C#で上1桁のキリ番を計算
double dblVal_In = 52.6753;//←暫定的な最大値
strVal = dblVal_In.ToString(“0.E+0”);
intPos = strVal.IndexOf(“E”)+1;
dblVal_new = double.Parse(strVal);
if (dblVal_new < dblVal_In)
{
dblVal_new = dblVal_new + Convert.ToDouble(“1” + *注Mid(strVal, intPos));
}
double MAXVALUE = dblVal_new;//←キリの良い数字
VB6(VBA)で上位1桁のキリ番を計算
strVal = 52.6753′←暫定的な最大値
strVal = Format$(dblVal_In, “0.E+##”)
intPos = InStr(1, strVal, “E”)
dblVal_new = CDbl(strVal)
If dblVal_new < dblVal_In Then
dblVal_new = dblVal_new + CDbl(“1” & mID$(strVal, intPos))
End If
MAXVALUE = dblVal_new;//←キリの良い数字
キリ番計算の考察
※注
C#の方では。ここでMidという関数を作って使っています。
詳細はコチラのサイトを参考にしてください→「VB の Left, Mid, Right のように文字列を取り出す」
ここで使っている計算はイロイロな上限値でキリ番にできるようになっていますので、関数かしておくと便利です。
私が使ったときはイロイロな種類のグラフを書くので上限値が250だったり9.84だったりのキリ番を求めなきゃいけないときに使いました。
多分あっていると思う…
こういうのって納品した後に備忘録として書くからガッツリとデバッグしてないんだよね…(=_=;)
まちがってたらごめん。でもこんな感じで考えりとできますってことで参考に。