# EnDinero ```rust // convenience shorthand for formatting f32 in spanish, it will truncate the decimals we don't want // outputs 2 decimals for amounts > 0, and 7 decimals for amounts < 1. // This is how we need it for our crypto market pages when dealing with some crapcoins that trade in very small amounts use endinero::dinero_f32; assert_eq!(endinero::dinero_f32(0.1234567), "0,123 456 7"); ``` ```rust // convenience shorthand for formatting f64 in spanish use endinero::dinero_f64; assert_eq!(endinero::dinero_f64(0.22233344455566), "0,222 333 444 555 66"); ``` Convert a float value to a user-friendly number, most often used to represent money amounts in Spanish (perhaps German and some other European locales work the same as in spanish) ```rust assert_eq!(endinero::dinero_f32(10.111), "10,11"); assert_eq!(endinero::dinero_f32(-10.111), "-10,11"); assert_eq!(endinero::dinero_f32(0.1234567), "0,123 456 7"); assert_eq!(endinero::dinero_f64(0.2223334445556677), "0,222 333 444 555 666 77"); ``` If you need to specify thousand separators, decimal separators, radix character, how many decimals to show for numbers > 0 or for numbers < 1 use the `endinero::endinero` function that receives all the parameters. ```rust use endinero::endinero; assert_eq!( endinero_f64(-1234567.456789, // amount 4, // decimals for numbers > 0 4, // decimals for numbers < 0 '.', // thousands separator ',', // radix separator ' '), // decimals separator "-1.234.567,456 7" ); ``` If you also need to format US dollars for American english we've included `endinero::money_f32` and `endinero::money_f64` formatters. ```rust // it will show only two decimals for numbers > 0 assert_eq!(money_f32(12345678.123456), "12,345,678.12"); assert_eq!(money_f32(1.123456),"1.12"); // it will show up to 7 decimals correctly for numbers < 1 if you pass an `f32` value assert_eq!(money_f32(0.123456789),"0.123 456 7"); // we recommend you work with f64 if you're dealing with very small amounts assert_eq!(money_f64(0.123456789),"0.123 456 789"); // up to 15 decimals correctly with f64 assert_eq!(money_f64(0.123456789012345),"0.123 456 789 012 345"); ``` ## Limits Integer part works on up to `10^14` Hundreds of trillions (Cientos de billones) when used with `f64` inputs ```rust assert_eq!(dinero_f64(123456789012345.1234) ,"123.456.789.012.345,12"); ```