How is the Bitcoin transaction fee calculated for small transactions I tried to send 0.001 BTC with Bitcoin-Core, but for some reasons it charged me with a transaction fee of 0.00145271 BTC:

$ bitcoin-cli getinfo|grep balance
"balance": 0.03312022,
$ bitcoin-cli sendtoaddress my_bitcoin_address 0.001
$ bitcoin-cli getinfo|grep balance
"balance": 0.03066751,


Is there any way to know which fee am I going to pay before sending the transaction?
You can use bitcoin-cli estimatefee to estimate the fees required, and settxfee to set it.  It's usually a bit trickier on the command line, a GUI wallet should show this information before you make the transaction though.