NSDecimalNumber Rounding在iOS 11中不起作用

时间:2018-03-13 23:26:42

标签: rounding nsdecimalnumber

我有一个应用程序,自iOS 9以来一直在商店。最近它因为舍入错误而破产。我正在使用Xcode版本9.2(9C40b)。我在iOS 9中编写了一段显示舍入工作的文本代码,但不是iOS 11.结果应该四舍五入到小数点后两位。

function twitchTV(){
    var twitchers = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];
    var output = "";
    var results = [];
    for (var i = 0; i < twitchers.length; i++){
      var channelName = twitchers[i];
      var apiQueryBio = 'https://wind-bow.glitch.me/twitch-api/users/' + channelName + '/';      
      $.getJSON(apiQueryBio, function(json) {            
        results.push(json);
        results.sort(function(a,b) {
           return twitchers.indexOf(a.name) - twitchers.indexOf(b.name);
        });
        renderItems(results);
      });     
    }    
  }

  function renderItems(results) {
   $("#name").html('');        
   var output = '';
   for (var i = 0; i < results.length; i++) {
      output += '<div class="name">' + results[i].name + '</div>';

   }
   $("#name").html(output);        
  }

  twitchTV();

在iOS 11上:

myNumber = 67.95999999999997 舍入结果= 67.96000000000001

**在iOS9上** myNumber = 67.95999999999997 舍入结果= 67.96

1 个答案:

答案 0 :(得分:0)

更新 - 解决了问题

这不是舍入错误,而是NSDecimalNumber的描述方法的问题。当我查看值时,使用调试器,它是正确的。

要查看正确的结果,请使用:

NSLog(@"rounding result = %@", result.stringValue);