Normal number types like u32, u64 etc. all have a limited length and you will run into problems with very big numbers. (For example most tokens on the chain are represented with 18 decimal places resulting in numbers that are in the range of 10^18)
BigUint doesn't have such limitation and can hold (nearly) infinitely big numbers, while still being very efficient in terms of encoding and calculations inside a smart contract :)
Normal number types like u32, u64 etc. all have a limited length and you will run into problems with very big numbers. (For example most tokens on the chain are represented with 18 decimal places resulting in numbers that are in the range of 10^18) BigUint doesn't have such limitation and can hold (nearly) infinitely big numbers, while still being very efficient in terms of encoding and calculations inside a smart contract :)