solana_binary_encoder/
parse_token.rs1
2use {
3 solana_account_decoder::StringDecimals,
7};
8
9pub fn real_number_string(amount: u64, decimals: u8) -> StringDecimals {
10 let decimals = decimals as usize;
11 if decimals > 0 {
12 let mut s = format!("{:01$}", amount, decimals + 1);
14 s.insert(s.len() - decimals, '.');
16 s
17 } else {
18 amount.to_string()
19 }
20}
21
22pub fn real_number_string_trimmed(amount: u64, decimals: u8) -> StringDecimals {
23 let mut s = real_number_string(amount, decimals);
24 if decimals > 0 {
25 let zeros_trimmed = s.trim_end_matches('0');
26 s = zeros_trimmed.trim_end_matches('.').to_string();
27 }
28 s
29}