Imprecision when converting Period to timestamp
#### Code Sample, a copy-pastable example if possible

```python
pd.Period("2000-12-31 23:59:59.999").to_timestamp()
```
returns: 2000-12-31 23:59:59.998999999
instead of 2000-12-31 23:59:59.999
It works correctly for other dates, e.g.
```python
pd.Period("2000-12-31 23:59:59.99").to_timestamp()
```
returns correctly "2000-12-31 23:59:59.990000"

#### Problem description
incorrect conversion of Period to Timestamp, see above.

#### Expected Output

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit: None

pandas: 0.23.4
pytest: None
pip: 18.1
setuptools: 39.1.0
Cython: None
numpy: 1.15.4
scipy: 1.2.0
pyarrow: None
xarray: None
IPython: 7.2.0
sphinx: None
patsy: 0.5.1
dateutil: 2.7.5
pytz: 2018.7
blosc: None
bottleneck: None
tables: None
numexpr: None
feather: None
matplotlib: 3.0.2
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None

</details>
