You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust语言中是否有获取实数整数部分、位数及小数部分的函数?

Rust 处理实数的整数与小数部分方法

针对你的问题,Rust标准库对浮点数(f32/f64)提供了直接的工具函数,同时可以通过简单组合实现你需要的所有功能:

1. 同时获取整数与小数部分

使用modf()方法,它会返回一个元组(小数部分, 整数部分),两个值都是同类型的浮点数:

let num = 123.456f64;
let (fractional, integer) = num.modf();
// 输出:整数部分: 123, 小数部分: 0.456
println!("整数部分: {}, 小数部分: {}", integer, fractional);

2. 单独获取整数部分

根据取整需求选择对应的方法:

  • trunc():向零取整(直接截断小数部分),比如123.9.trunc()得到123.0,-123.9.trunc()得到-123.0
  • floor():向下取整,-123.9.floor()得到-124.0
  • ceil():向上取整,123.1.ceil()得到124.0

如果需要转为整数类型,直接用类型转换:

let int_val = num.trunc() as i64; // 得到123

3. 获取整数部分的位数

将整数部分转为绝对值的字符串后取长度即可,注意处理负数的负号:

let int_part = num.trunc() as i64;
let digit_count = int_part.abs().to_string().len();
println!("整数部分位数: {}", digit_count); // 输出3

4. 单独获取小数部分

直接使用fract()方法,返回原数的小数部分:

let fractional = num.fract(); // 得到0.456

注意:浮点数存在精度限制,如果需要处理高精度十进制数值,推荐使用第三方crate(如rust_decimal)避免精度丢失问题。

内容的提问来源于stack exchange,提问作者MauricioCuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:58:19