ソフトウエアでグラフを書く場合、目盛りを自動で振るようにしておくと便利です。 その場合、目盛りは切りのいい数値にしたくなります。
という訳で、サンプリング周波数からスペクトル周波数の最大値を上2桁で求める方法を考えました。 簡単にできるかと思ったのですが、意外と面倒でした。
最初、数値だけでやっていましたが、一旦文字列に置き換えた方が簡単でした。
1 2 3 4 5 6 7 |
double sr_ = 44100; int valu; var str = ((int)(sr_/2.0)).ToString("00E0"); if(double.Parse(str) < sr_ / 2) valu = (int.Parse(str.Substring(0, str.Length - str.IndexOf("E")))+1) * (int)Math.Pow(10,int.Parse(str.Substring(str.IndexOf("E")+1,1))); else valu = int.Parse(str.Substring(0, str.Length - str.IndexOf("E"))) * (int)Math.Pow(10,int.Parse(str.Substring(str.IndexOf("E")+1, 1))); |
最近、C#ばかりで遊んでいます。 あまり調べたりせず、自分の知識だけでなんとかしようともがいているので、ちっとも上達しません。