[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Type](https://evolu.dev/docs/api-reference/common/Type) › multipleOf

```ts
function multipleOf<Divisor>(
  divisor: ValidateMultipleOfDivisor<Divisor>,
): BrandFactory<`MultipleOf${Divisor}`, number, MultipleOfError<Divisor>>;
```

Defined in: [packages/common/src/Type.ts:7260](https://github.com/evoluhq/evolu/blob/f0109fb501a593010e858e39248dde1200eeb2d7/packages/common/src/Type.ts#L7260)

Number [Brand](https://evolu.dev/docs/api-reference/common/Brand/interfaces/Brand) requiring an exact decimal multiple of `divisor`.

The divisor must be one canonical positive decimal string literal because its
exact value is encoded in the resulting Brand name. The declaration is
validated at compile time and is never converted to an IEEE-754 number.

Validation treats each finite Number as its canonical decimal representation
and checks exact base-10 divisibility. It does not use floating-point
remainder, apply a tolerance, or round to the divisor's precision.

### Example

```ts
import {
  assertEqual,
  assertErr,
  assertOk,
  assertType,
  Data,
  FiniteNumber,
  multipleOf,
  type Brand,
} from "@evolu/common";

const Tenths = multipleOf("0.1")(FiniteNumber);

assertType<FiniteNumber & Brand<"MultipleOf0.1">, typeof Tenths.Output>();

assertOk(Tenths.fromUnknown(0.3), 0.3);
const invalid = Tenths.fromUnknown(0.31);
assertErr(invalid);
assertType(Data, invalid.error);
assertEqual(invalid.error, {
  type: "MultipleOf0.1",
  value: 0.31,
  divisor: "0.1",
});
```