任意の整数値の最上位の桁を残して以降を切り捨てるには

仕事で、任意の正の整数値の最上位の桁だけ残して、残りの値を切り捨てた値を求める関数を書かなければならなくなった。 例えば、値が 12,345 なら 10,000 を返して、25 なら 20 を返すような関数だ。

整数値の切り捨てに数学関数の Math.Floor() が使えないかと思ったが、簡単にはできなさそうだったんで、次のようなコードを書いた。

private int TruncateBelowMostHighOrderDigit(int n)
            => n >= 10 ? n - (n % (int)Math.Pow(10, n.ToString().Length - 1)) : n;

関数名これで良いの?とか、もうちょっと効率的な書き方ができるんでは? という気がしないでもない。