все просто: идет округление
-обратите внимание, что при делении виндовский калькулятор выдал вам число, которое на 2 цифры длиннее, чем, которое вы можете ему задать, то есть он запоминает, что число в периоде, поэтому при умножении выдал ответ 2
-в телефонном калькуляторе при делении тоже идет округление, но, видимо, нету функции, которая позволяет запомнить, что получилось число в периоде - соответственно ответ при умножении "2,00000001"
-почему при делении C выдал ответ "0.66666666666666663" не могу знать
теперь:
2/3=0.(6), то есть бесконечное количество шестерок после запятой
дальше: 0.(6)*3=0.(9)... если бы у множителя было конечное число шестерок, то последняя цифра произведения была бы 8, но это не так, поэтому любуемся тем, что у нас есть:)