Трейт LowerExp
Трейт LowerExp позволяет форматировать значение
в нижнем экспоненциальном виде (например, 1.23e4)
с помощью плейсхолдера {:e} в макросах
форматирования, таких как format!,
println! и других. Параметром
метод fmt принимает ссылку на
Formatter, который управляет процессом
форматирования и содержит настройки ширины, точности
и выравнивания.
Синтаксис
impl LowerExp for Type
{
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result
{
// implementation
}
}
Для использования готовых реализаций достаточно
применить плейсхолдер {:e} в строке
форматирования.
Пример
Давайте отформатируем число с плавающей точкой в нижнем экспоненциальном виде:
fn main()
{
let res = format!("{:e}", 12345.678);
println!("{}", res);
}
Результат выполнения кода:
"1.2345678e4"
Пример
Давайте отформатируем целое число в нижнем экспоненциальном виде:
fn main()
{
let res = format!("{:e}", 12345);
println!("{}", res);
}
Результат выполнения кода:
"1.2345e4"
Пример
Давайте применим пользовательскую реализацию
трейта LowerExp для собственной структуры:
use std::fmt;
struct Point
{
x: f64,
y: f64,
}
impl fmt::LowerExp for Point
{
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result
{
write!(f, "({:e}, {:e})", self.x, self.y)
}
}
fn main()
{
let p = Point { x: 1234.5, y: 0.000678 };
let res = format!("{:e}", p);
println!("{}", res);
}
Результат выполнения кода:
"(1.2345e3, 6.78e-4)"
Пример
Давайте используем плейсхолдер {:e}
внутри макроса println!:
fn main()
{
let value = 98765.4321;
println!("{:e}", value);
}
Результат выполнения кода:
9.87654321e4