The two expressions "数年以内に" and "数年以内で" are almost interchangeable each other.
However there are slight difference between the two.
ex-1-1:数年以内に120円/ドルになるでしょう。(注:数年=5年から6年程度)
=数年以内には120円/ドルになるでしょう。
=1年後か、2年後か、3年度か、4年後か、5年後か、6年後か、はっきりとは分かりませんが、数年以内には120円/ドルになるでしょう。
ex-1-2:数年以内で120円/ドルになるでしょう。
もし「数年で120年/ドルになるでしょう」と言えば、「5年あるいは6年で、120円/ドルになるでしょう」となる。
このように「で」には、時期をある程度確定的に示す意図が感じられます。
そこで、「数年以内で」は「数年以内に」よりも、若干ですが、時期をより強く示す意図が感じられます。
ex-1-3:[OK]数年程度で120円/ドルになるでしょう。
とは言えますが、
ex-1-4:[NG]数年程度に120円/ドルになるでしょう。
とは言えません。
ex-2-1:Aボタンを押した後、5秒以内にBボタンを押してください。そうしないと爆発します。
ex-2-2:Aボタンを押した後、5秒以内でBボタンを押してください。そうしないと爆発します。
ex-2-3:Aボタンを押した後、5秒程度でBボタンを押してください。そうしないと爆発します。
ex-2-1でもex-2-2でも、両方とも使えますが、厳密に「5秒以内」でなければならないのであれば、ex-2-1「5秒以内に」がより適切な表現です。
「5秒以内に」は、「5秒以内のうちに」であり、「早いほうがより良い」と言うニュアンスが感じられます。
「5秒以内で」は、「5秒以内のどこかの時点で」であり、強いて言えば「ともかく5秒を越えなければ良い」と言うニュアンスが感じられます。
「5秒程度で」となると、6秒でも良いことになります。
英語のニュアンスは良く知りませんが、「Aボタンを押した後、5秒以内にBボタンを押してください。そうしないと爆発します」を英訳する際に、「5秒以内に」は"within five seconds"でしょうか?あるいは"in five seconds"でしょうか?あるいは"by five seconds"でしょうか?