This isn't really true. You submit a transaction with a maximum gas price. All wallets that I know of will show a maximum transaction fee based on this before you submit the transaction, and you can manually lock in any arbitrary gas limit you would like. If gas prices suddenly go up right as you submit your transaction (read: other network users outbid you for use of the network), your transaction will stay pending and either eventually process at the gas price specified, or fail and you will pay either nothing or a partial fee based on your maximum gas price * computation steps used.
Gas is basically a means to ensure all computation on ethereum halts.
Gas is basically a means to ensure all computation on ethereum halts.