This is because the contracts are the ones minting the voting tokens to the users. Currently the only way of minting the correct amount for users is to also manipulate the asset_coefficient in the sdk (multiply by 10^n where n is the number of decimal places). This sdk then also has to handle "hiding" this from the sdk user, this is ugly, and someone who (for some reason) is using the contracts without the sdk will find it confusing. The number of decimal places could either be fixed, or passed in as a parameter at creation (probably hidden away by the sdk)
This is because the contracts are the ones minting the voting tokens to the users. Currently the only way of minting the correct amount for users is to also manipulate the asset_coefficient in the sdk (multiply by 10^n where n is the number of decimal places). This sdk then also has to handle "hiding" this from the sdk user, this is ugly, and someone who (for some reason) is using the contracts without the sdk will find it confusing. The number of decimal places could either be fixed, or passed in as a parameter at creation (probably hidden away by the sdk)