2017-02-13 19 views
0

У меня есть простая задача, чтобы понять:MySQL номер математике точность

SELECT (200/0.713788), 280.1952*0.713788, 280.195240043*0.713788 

Результаты:

  1. Col: 280,1952, почему это усеченный? Каково правило для числа десятичных знаков?

  2. col: 199.9999714176, это хорошо, это не может быть точным, потому что здесь я скопировал результат первого col.

  3. col: 199.999999999812884, это то, что меня интересует больше всего. Почему это не 200 точно?

+0

Дополнительно к scaisEdge ответа, это может ответить на ваш "почему?" : https://dev.mysql.com/doc/refman/5.5/ru/problems-with-float.html –

ответ

1

Вашего +280,195240043 * 0,713788 есть = 199,999999999812884

, если вам нужен округлый номер, который вы должны использовать Round()

SELECT (200/0.713788), 280.1952*0.713788, round(280.195240043*0.713788 , 8)