2013-05-21 3 views
7

में int [ish] और double [ish] के बीच कनवर्ट करना यदि मुझे यह कहना है कि पूर्णांक भाग और asm.js मॉड्यूल के भीतर किसी संख्या का आंशिक भाग ढूंढना है, तो मैं इसे कैसे कर सकता हूं? standard operators में से कोई भी intish और doubleish प्रकारों के बीच कनवर्ट नहीं करता है; यहां तक ​​कि Math.floor एक डबल लौटाता है, और इसका नतीजा एक int को नहीं जोड़ा जा सकता है।एएसएम.जेएस

var floor = stdlib.Math.floor; 

function(n) { 
    n = +n; 
    var a = 0; 
    a = floor(n)|0; // fails: "Operands to bitwise ops must be intish" 
    var b = 0.0; 
    b = +(n-a); // would fail if compiler got to here 
    return; 
} 

उत्तर

10

Vyacheslav Egorov (चहचहाना: @mraleph) का कहना है: ~~ का उपयोग किसी पूर्णांक पर मजबूर करने के लिए। विशेष मान्यता मामला: http://asmjs.org/spec/latest/#unaryexpression

a = ~~floor(n); // success! 
+2

ध्यान दें कि हाल ही में एफएफ (रात चैनल) की आवश्यकता होती है बनाता है '~~ + मंजिल (एन)', या कभी कभी '~~ + मंजिल (एन) | 0'। – ZachB

संबंधित मुद्दे

 संबंधित मुद्दे