Java округляется до нуля при сужении от плавающей запятой до целочисленного типа - и C #, когда вы используете преобразование приведения. Convert.ToInt32
округляет:
double d = 1.71472;
int x = (int) d; // x = 1
int y = Convert.ToInt32(d); // y = 2
Подробности можно найти в Спецификации языка Java . Обратите внимание, что хотя документация, цитируемая в Number
, оставляет опции открытыми для подклассов, документация по конкретным типам бокса, таким как Double
, , явно описывает реализацию:
Возвращает значение этого Double как
int (приведение к типу int).
При использовании BigDecimal
вы можете указать одну из восьми различных политик округления.