floor
было бы выбрано, чтобы соответствовать стандартной подпрограмме c в math.h (rint
, упомянутое в другом ответе, также присутствует в этой библиотеке и возвращает double
,как в java).
, но round
не было стандартной функцией в c в то время (это не упоминается в C89 - идентификаторы и стандарты c ; c99 действительно определяет round
ион возвращает double
, как и следовало ожидать).дизайнеры языка «заимствуют» идеи, так что, может быть, это исходит от какого-то другого языка?Фортран 77 не имеет функции с таким именем, и я не уверен, что еще тогда использовалось бы в качестве ссылки.возможно vb - у которого есть Round
, но, к сожалению для этой теории, он возвращает double
(php тоже).Интересно, что perl намеренно избегает определения раунда .
[обновление: хммм.выглядит как smalltalk возвращает целые числа .я не знаю достаточно о smalltalk, чтобы знать, является ли это правильным и / или общим, и метод называется rounded
, но это может быть источником. smalltalk действительно повлиял на java в некотором смысле (хотя и более концептуально, чем в деталях).]
если это не smalltalk, то остается гипотеза, что кто-то просто выбрал плохо (учитываянеявные преобразования возможны в Java, мне кажется, что возвращение double
было бы более полезным, так как тогда его можно использовать как при преобразовании типов, так и при выполнении вычислений с плавающей запятой).
другими словами: функцииобщие для java и c обычно соответствуют стандарту c библиотеки в то время;остальные кажутся произвольными, но эта конкретная морщина может возникла из небольшой беседы.