Burnable token

Good day can someone please help me i imported my code from openzepelin contract after i deployed to testnet i tested the functions several times but it is giving a wrong out put. i deployed 5000 token but when I tried to burn 3000 from it, my total supply turn to 4,999.999999 while 0.0000003 was only send to dead wallet.

this is the code

// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;


contract MyToken is ERC20,ERC20Burnable,Ownable{
constructor () public ERC20("Solace Token", "SLT") {
_mint(msg.sender, 5000 * (10 ** uint256(decimals())));