Округление очень легко реализовать, так как приведение значения как int
усекает десятичную часть числа.Пусть 0 <= x < 1
.Тогда, если вы хотите, чтобы все значения округлялись до ближайшего целого числа, если десятичная часть меньше x
, и округлялись до ближайшего целого числа, если десятичная часть больше или равна x
, вам нужно только вычислить:
int roundedValueBasedOnX = (int) (value + (1 - x));
Например, если x = 0.2
, то имеем:
1) value = 9.4
, округление до 10
.
int roundedValueBasedOnX = (int) (9.4 + (1 - 0.2)) = (int) (9.4 + 0.8) = (int) (10.2) = 10;
2) value = 3.1
, должно округляться до 3
.
int roundedValueBasedOnX = (int) (3.1 + (1 - 0.2)) = (int) (3.1 + 0.8) = (int) (3.9) = 3;
Если x = 0.7
, то имеем:
3) value = 9.4
, должно округляться до 9
.
int roundedValueBasedOnX = (int) (9.4 + (1 - 0.7)) = (int) (9.4 + 0.3) = (int) (9.7) = 9;
4) value = 3.8
, должно округляться до 4
.
int roundedValueBasedOnX = (int) (3.8 + (1 - 0.7)) = (int) (3.8 + 0.3) = (int) (4.1) = 4;
Надеюсь, это поможет!