DirectX11 how to render a 2D texture exactly by the pixel on the screen?

I'm working on a texture atlas tool using DirectX. And now I'm facing a problem, images sometimes not rendered in a correct size.

Following I list some information about coordinate to render a image.

The window I created is borderless fullscreen window.

1.Ortho camera matrix with screen size (1920, 1080);

2.Vertex buffer with size (1900, 1070):from (-950, -535) to (950, 535)

3.Then render image.

In my case, I render a pure red image to a pure black render target for convenience.

I also did some test(Only apply a XMMatrixTranslation(x, y, z)), I use printscreen key to capture screen and paste that into mspaint to check pixel:

1.Render position(0.0f, 1080.0f), result screen pos: (0, 0), resultSize:(1901, 1070)
2.Render position(0.5f, 1080.0f), result screen pos: (0, 0), resultSize:(1901, 1070)
3.Render position(1.0f, 1080.0f), result screen pos: (1, 0), resultSize:(1901, 1070)
4.Render position(-0.5f, 1080.0f), result screen pos: (-,-), resultSize:(1900, 1070)
5.Render position(-1.0f, 1080.0f), result screen pos: (-,-), resultSize:(1900, 1070)

It seems whatever position I render there is always a pixel offset.

Please help me!Thx!!