Dart 取兩位小數 不要四捨五入的方法

如下

  var a= 85.99999;
  var b=488.236;
  var c=488.3;
formatNum(double num,int postion){
  if((num.toString().length-num.toString().lastIndexOf(".")-1)<postion){
    //小數點後有幾位小數
    print( num.toStringAsFixed(postion).substring(0,num.toString().lastIndexOf(".")+postion+1).toString());
  }else{
    print( num.toString().substring(0,num.toString().lastIndexOf(".")+postion+1).toString());
  }
}

formatNum(a, 2);
formatNum(b, 2);
formatNum(c, 2);

``

打印結果
在這裏插入圖片描述
在這裏插入圖片描述
我們都知道toStringAsFixed()這個方法會在保留小數的基礎上對末位進行四捨五入,當存在99.999這種數字時,用這個就會出現問題。所以我們需要進行判斷,當給的數字小數位少於我們需要截取的位數時,我們才需要用toStringAsFixed這個方法去補充後面的位數,別的情況直接截取即可。

over…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章