我是 Rust 新手(并且有 Javascript 背景),因此我决定构建一个数字格式化应用程序来了解更多信息。
应用程序中的一个函数可以接受一个微小的浮点(例如0.000435)和一个精度值(例如2),并且应该返回格式化为第一个有效小数并应用指定精度的浮点(例如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"
Run Code Online (Sandbox Code Playgroud)
我知道这format!有助于提高精度。但我找不到一种合适的方法来找到第一个有效小数,而不做一些有趣的事情,比如“将 float 转换为 aString并迭代直到找到非零值......”
我希望这是有道理的,任何帮助将不胜感激。
我正在做一个 findOne,然后是一个保存。这是为了覆盖以前保存的对象。
问题是在我的回调中保存 res.json() 后返回正确更新的数据(也就是通过我的 for 循环修改的 myObject )。但是“保存”似乎并没有真正发生,因为数据库仍然以旧状态显示 myObject。
var pathList = [{id:'x',url:'#'}];
MyObjects.findOne({'_id': _id}, function(err, myObject) {
//
for ( var i in myObject.body.module ) {
for (var j = 0; j < pathList.length; j++ ) {
var id = pathList[j].id;
myObject.body.module[i].channel[id].buffer = {
url:pathList[j].url
};
}
}
//
myObject.save(function(err, data) {
if (err){
res.json({'response':'Error in saving track: '+err});
throw err;
}
res.json({
'response': 'done',
'data': data
});
});
});
Run Code Online (Sandbox Code Playgroud)
findOne > save 的这种方法以前对我有用。所以我上面的代码行不通吗?并发?对象大小?
任何帮助都会很棒。谢谢