小编Ric*_*nho的帖子

如何将浮点数格式化为第一个有效小数并具有指定的精度

我是 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并迭代直到找到非零值......”

我希望这是有道理的,任何帮助将不胜感激。

rust

4
推荐指数
1
解决办法
3107
查看次数

Mongoose save 返回正确的保存对象,但未保存到数据库

我正在做一个 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 的这种方法以前对我有用。所以我上面的代码行不通吗?并发?对象大小?

任何帮助都会很棒。谢谢

javascript mongoose mongodb node.js

2
推荐指数
1
解决办法
1492
查看次数

标签 统计

javascript ×1

mongodb ×1

mongoose ×1

node.js ×1

rust ×1