def METHOD_NAME(
    self,
    factor: float,
    decimals: typing.Optional[int] = None,
    inplace: bool = True,
    new_name: typing.Optional[str] = None,
) -> RateTaxScaleLike:
    if inplace:
        assert new_name is None
        for i, threshold in enumerate(self.thresholds):
            if decimals is not None:
                self.thresholds[i] = numpy.around(
                    threshold * factor,
                    decimals=decimals,
                )
            else:
                self.thresholds[i] = threshold * factor
        return self
    new_tax_scale = self.__class__(
        new_name or self.name,
        option=self.option,
        unit=self.unit,
    )
    for threshold, rate in zip(self.thresholds, self.rates):
        if decimals is not None:
            new_tax_scale.thresholds.append(
                numpy.around(threshold * factor, decimals=decimals),
            )
        else:
            new_tax_scale.thresholds.append(threshold * factor)
        new_tax_scale.rates.append(rate)
    return new_tax_scale