God, I know....that's why I figured I'd go for a major that I'm interested in rather than one I'll have a higher paying career with. You can't buy happiness
That's how I used to think too when I was your age. If it's an interest, why not keep it that way? Learn programming on the side, while you pursue a major that will get you paid (and allow you to "retire" earlier to do what you really love).
It's not a trivial decision, the difference in pay is staggering.
A programming job coming out of a top school will make around 50-70k a year (I've heard of 90k, but those are much more rare). In 3-5 years, expect to make 70-100k. In most cases, you'll likely max out at around 120-150k. Also, you're wracking your mind all day maintaining legacy systems, mostly developing skills to do more programming. If you're a top-notch world-class programmer in a very competitive position in the financial services industry (and lucky), you'll be able to get around 400k per year.
A investment banking job will make 80-120k coming out of school (70k in the deepest times of the recent depression). In 3-5 years, expect to make 200-700k. Also, you're mostly preparing spreadsheets, presentation materials, analyzing financial statements, and engaging with clients, but developing skills to move cross-industry and into management positions anywhere. If you're a pretty good banker you'll end up with $1-20MM++ per year.
A management consulting job will make about 70-80k coming out of school. In 3-5 years, expect to make 120-250k. You're mostly preparing presentation materials, thinking of business strategy, and engaging with clients, but developing skills to move cross-industry and into management positions anywhere. If you're a pretty good consultant, you'll end up with $1-5MM+ per year.
My personal approach was to major in business, while developing my skills in programming as an interest on the side (double major works too). Skills talk more than major in the programming industry, mine were good enough to get me through the Google interview... (ultimately turned the job down for one of the other two choices listed)
Going the other way is a lot harder, a math/CS/phys/stat major will be type-cast on paper as a geek (unless you have a double major in a liberal arts field). You'll be fighting against this for the rest of your life if you decide that you want a client-facing (higher paid) role.
Sure there are exceptions, and people will tell you if you want to do it you can make it work, but why fight an uphill battle when the other route is SO MUCH easier.