Преобразование в u128
Преобразование в u128 - это операция приведения значения
к типу беззнакового 128-битного целого числа. Тип u128
может хранить значения от 0 до 340282366920938463463374607431768211455.
Преобразование выполняется с помощью оператора as для примитивных
числовых типов или с помощью методов try_into и into
для более безопасного приведения. При использовании оператора as
следует помнить, что для чисел с плавающей точкой происходит усечение
дробной части, а для знаковых целых отрицательные значения становятся
большими положительными из-за переполнения.
Синтаксис
let res: u128 = value as u128;
let res: u128 = u128::try_from(value).unwrap();
let res: u128 = value.try_into().unwrap();
Пример
Давайте преобразуем число типа u8 в u128 с помощью
оператора as:
fn main()
{
let num: u8 = 255;
let res: u128 = num as u128;
println!("{}", res);
}
Результат выполнения кода:
255
Пример
Давайте преобразуем отрицательное число типа i32 в u128
с помощью оператора as и посмотрим на результат переполнения:
fn main()
{
let num: i32 = -1;
let res: u128 = num as u128;
println!("{}", res);
}
Результат выполнения кода:
340282366920938463463374607431768211455
Пример
Давайте преобразуем число с плавающей точкой типа f64
в u128 с помощью оператора as:
fn main()
{
let num: f64 = 123.456;
let res: u128 = num as u128;
println!("{}", res);
}
Результат выполнения кода:
123
Пример
Давайте преобразуем строку "12345" в u128
с помощью метода parse:
fn main()
{
let s = "12345";
let res: u128 = s.parse().unwrap();
println!("{}", res);
}
Результат выполнения кода:
12345
Пример
Давайте преобразуем число типа u64 в u128
с помощью метода try_into:
use std::convert::TryInto;
fn main()
{
let num: u64 = 1000000;
let res: u128 = num.try_into().unwrap();
println!("{}", res);
}
Результат выполнения кода:
1000000