mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-04-19 17:44:08 +02:00
1.2 KiB
1.2 KiB
m.room.power_levels events accept values as floats
When the value is a float, anything after the decimal point is removed,
making e.g. 5.17, 5.42, and 5 functionally identical.
For example, this is a valid m.room.power_levels event in this room version:
{
"content": {
"ban": 50,
"events": {
"m.room.power_levels": 100
},
"events_default": 0,
"state_default": 50,
"users": {
"@example:example.org": 100,
"@alice:localhost": 50,
"@bob:localhost": 50.57
},
"users_default": 0
},
"origin_server_ts": 1432735824653,
"room_id": "!jEsUZKDJdhlrceRyVU:example.org",
"sender": "@example:example.org",
"state_key": "",
"type": "m.room.power_levels"
}
In this example, both @bob:localhost and @alice:localhost have the same effective
power level of 50, even though the values are technically different.
When a float written in exponential notation is unpacked, the decimal portion is removed
afterward; for example, 5.114698E4 becomes 51146.98, which is then truncated to 51146.
Note that, since this room version does not enforce that events comply with the requirements of Canonical JSON, power levels can be formatted as floats.