Skip to content

Latest commit

 

History

History
16 lines (12 loc) · 1.42 KB

File metadata and controls

16 lines (12 loc) · 1.42 KB

Код выдаёт "YES" в отличии от Python и JavaScript

num := 0.1 + 0.1 + 0.1
if num == 0.3 {
  print("YES")
} else {
  print("NO")
}

Это связано с тем, как числа с плавающей запятой представлены и обрабатываются в разных языках программирования.

В Python и JavaScript числа с плавающей запятой представлены в формате двоичной системы счисления, что может привести к неточностям при представлении некоторых десятичных дробей. Например, 0.1 в двоичной системе счисления является бесконечной дробью, поэтому она не может быть точно представлена. Это приводит к тому, что сумма 0.1 + 0.1 + 0.1 не равна 0.3.

В Go, с другой стороны, используется библиотека для точной работы с числами с плавающей запятой, которая может обеспечить более точные результаты для таких операций. Ваш код на Go дает “YES”, потому что Go обрабатывает эту ситуацию иначе, чем Python и JavaScript.