(Untitled)

May 14, 2015 18:32

print floor(log(1000, 10)); # => 2

UPD: Норм, живём.
print floor(log10(1000)); # => 3

Leave a comment

Comments 35

ujinsky May 14 2015, 09:30:42 UTC
фигня какая-то.

Reply

rainman_rocks May 14 2015, 10:58:52 UTC
В нормальных языках тоже так:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from math import log, floor
>>> print floor(log(1000, 10));
2.0

Добро пожаловать в чудесный мир плавающей точки.

Reply

ujinsky May 14 2015, 11:07:04 UTC
Получается, что питон тоже не нормальный язык )
Вот Go - нормально обрабатывает ситуацию:

package main
import "math"
func main() {
println(math.Floor(math.Log10(1000)))
}
+3.000000e+000

Reply

deka May 15 2015, 22:54:38 UTC
"Получается"?! А что, в том, что питон ненормальный язык, были сомнения? ;)

Reply


diesel_ks May 14 2015, 10:06:40 UTC
вроде ж чинили....

Reply

rainman_rocks May 14 2015, 10:59:49 UTC
это ж IEEE 754, как его починишь-то

Reply


deka May 15 2015, 22:57:20 UTC
А чего такого? В терминах точности вычислений с плавающей точкой всё верно.

В конце концов пхп же не предназначен для особо точных вычислений ;)

Reply

ratnos May 16 2015, 01:53:39 UTC
> пхп же не предназначен

ага. и питон не предназначен.

Reply

deka May 16 2015, 02:29:25 UTC
А что, это открытие?

Reply

ratnos May 16 2015, 03:01:53 UTC
Вы разницу между "не особо точным вычислением" и "округлить 3 до 2" понимаете?

Reply


Leave a comment

Up