2015-01-27 4 views
1
mysql> SELECT 100/35600.00*35600.00; 

+-----------------------+ 
| 100/35600.00*35600.00 | 
+-----------------------+ 
|    99.999973 | 
+-----------------------+ 

mysql> SELECT TRUNCATE(100/35600.00, 30)*35600.00; 

+-------------------------------------+ 
| TRUNCATE(100/35600.00, 30)*35600.00 | 
+-------------------------------------+ 
| 99.999972800000000000000000000000 | 
+-------------------------------------+ 
+0

MySQL> SELECT TRUNCATE (100/35600,00, 30) * 35600,00; + ------------------------------------- + | TRUNCATE (100/35600,00, 30) * 35600,00 | + ------------------------------------- + | 99.999972800000000000000000000000 | + ------------------------------------- + – neo

+0

Действительно непонятно, что вы спрашивая или в чем проблема. Вам интересно, почему арифметика, кажется, отключена на небольшую сумму? Пожалуйста, отредактируйте свой вопрос, чтобы мы могли дать вам правильный ответ. – eigenchris

ответ

2

Вы должны использовать TRUNCATE() в mysql для своей цели.

SELECT TRUNCATE(100/35600.00*35600.00, 2); 

Это обеспечит вам результат как 99.99

Сво проблемы с TRUNCATE не округляет. Поэтому я предлагаю вам использовать функцию ROUND().

SELECT ROUND(100/35600.00*35600.00, 2); 

Результат: 100.00

+0

Я не знаю, является ли это правильным ответом, потому что я не знаю, в чем вопрос, но, учитывая подсказку, это хорошая попытка. –