I fount that in colorbar's TickLabels, one space only take up half of space of character, so I solve this problem by :
imshow('rice.png')
h = colorbar;
YTickLabels = cellstr([char(num2str([1,5000000,1000,5000,10000,15000]')),repmat(' (USD)',6,1)]);
h.YTickLabel = cellfun(@(x) strrep(x,' ',' '),YTickLabels,'UniformOutput',false);