Есть две проблемы с вашей реализацией.
Причина значения оба округлением до 2 цифр точности является то, что вы явно определили масштаб как 2.
Кроме того, FLOAT является неточным типом данных в MySQL.
Для решения обеих проблем вы должны использовать тип данных DECIMAL с соответствующей точностью и масштабами.
Например, что-то вроде этого:
CREATE TABLE `tblGeoCodes` (
`recNo` int(11) NOT NULL AUTO_INCREMENT primary key,
`longLocation` decimal(18,14) DEFAULT NULL,
`latLocation` decimal(18,14) DEFAULT NULL
);
Пример:
mysql> CREATE TABLE `tblGeoCodes` (
-> `recNo` int(11) NOT NULL AUTO_INCREMENT primary key,
-> `longLocation` decimal(18,14) DEFAULT NULL,
-> `latLocation` decimal(18,14) DEFAULT NULL
->);
Query OK, 0 rows affected (0.02 sec)
mysql>
mysql> insert into tblGeoCodes (longLocation,latLocation) values(-61.45859899999999 , 10.28289);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> select * from tblGeoCodes;
+-------+--------------------+-------------------+
| recNo | longLocation | latLocation |
+-------+--------------------+-------------------+
| 1 | -61.45859899999999 | 10.28289000000000 |
+-------+--------------------+-------------------+
1 row in set (0.00 sec)
Возможный дубликат [Какой идеальный тип данных используется при хранении широты/долготы в базе данных MySQL?] (Http://stackoverflow.com/questions/159255/what-is-the-ideal-data-type -to-use-when-storing-latitude-longitudes-in-mysql) – Gajus