我是Rust的新手(来自Java脚本背景,所以我决定构建一个数字格式应用程序以了解更多信息。
应用程序中的一个函数可以接受微小的浮点数(例如0.000435
)和精度值(例如2
),并且应将格式化后的浮点数返回到第一个有效的小数并应用指定的精度(例如[ C0])
例如,该函数应接受并返回以下内容:
0.00044
我知道 fn meh(float: f64, precision: usize) -> String {
// ... magic happens ... format!(...
}
let float = 0.000456;
let precision = 2:
let result_a = meh(float, precision);
// result_a => "0.00046"
let float = 0.043256;
let precision = 3:
let result_b = meh(float, precision);
// result_b => "0.0433"
有助于提高精确度。但是我找不到一种不错的方法来找到第一个有效的小数点,而没有做一些有趣的事情,例如“将浮点数转换为format!
并进行迭代,直到找到一个非零值。...“]
我希望这是有道理的,任何帮助将不胜感激。
我不是Rust的新手(来自Java脚本背景,所以我决定构建一个数字格式应用程序以了解更多信息。应用程序中的一个函数可以接受一个很小的浮点数(例如...
如评论中所述,Rust对“精度”的解释是“小数点后的位数”。但是,如果我们改为希望它表示“有效位数”,则可以编写String
函数以将其考虑在内: