The user cannot be guaranteed to use an integer value for feePerKb. Many legacy apps use satoshis per byte as a fee rate, and may implement eCash lib by converting existing fee rates to feePerKb.
For example, the default fee rate in Cashtab is 2.01 satoshis per byte. However, in JS, 1000*2.01 !== 2010. We get a hard to decipher error from eCash lib if it is implemented with this kind of value. With this diff, a more helpful error is thrown.
Since we cannot control whether or not developers choose integer values for their fee rate, need to handle the case.