Amounts in transactions are integer numbers of satoshis. It is impossible to represent 0.5 or 0.1 satoshi.
Onkel Paul
Hmm yes you have a point, even if it changed and my device could be told I would have to guess the exact format used in the future 10-20 years in advance.
(Say we keep it as integer but 0 becomes = 0.001 satohis (since few will have even 1 btc by then)
OR we switch to some non-int format like string... impossible to know)
Transaction and block formats supporting versioning.
The current version for transactions is ver 1. When creating a tx the wallet has to specifically set the version number. If the the tx format was changed it would have a new version. If the change was backwards compatible then ver1 transactions would still be valid (i.e. wallets can create either version 1 or version 2 addresses). If the change was not backwards compatible then a version 1 transaction would simply be invalid and dropped by the network (i.e. after block X only ver2 transactions are valid).
In the former your device would continue to work although it could not take advantage of the newer ver2 transactions. In the later scenario your device would be obsolete if it couldn't be reprogrammed.
The scary thing is you don't already know this. This (and knowing that the network records values in integers as satoshis) is kinda Bitcoin Developer 101 level stuff.