Вы можете округлить до произвольного разрешения, просто масштабируя число, которое умножает число на единицу, деленное на разрешение (или, проще, просто деление на разрешение).
Затем вы округляете его доближайшее целое число, до его масштабирования.
В Python (который также является очень хорошим языком псевдокода) это будет:
def roundPartial (value, resolution):
return round (value / resolution) * resolution
print "Rounding to halves"
print roundPartial (123.123, 0.5)
print roundPartial (456.456, 0.5)
print roundPartial (789.789, 0.5)
print "Rounding to thirds"
print roundPartial (123.123, 1.0/3)
print roundPartial (456.456, 1.0/3)
print roundPartial (789.789, 1.0/3)
print "Rounding to tens"
print roundPartial (123.123, 10)
print roundPartial (456.456, 10)
print roundPartial (789.789, 10)
print "Rounding to hundreds"
print roundPartial (123.123, 100)
print roundPartial (456.456, 100)
print roundPartial (789.789, 100)
В этом коде выше этоroundPartial
функция, которая обеспечивает функциональность, и ее очень легко перевести на любой процедурный язык с помощью функции round
.
Остальная часть, в основном тестовая программа, выдает:
Rounding to halves
123.0
456.5
790.0
Rounding to thirds
123.0
456.333333333
789.666666667
Rounding to tens
120.0
460.0
790.0
Rounding to hundreds
100.0
500.0
800.0