私はC#にJavaScriptからライブラリを変換し、この場合の下で感じたんだからC#で小数ビット単位の操作を行う方法:のJavascriptのコード
私は他の記事に読んだから// Javascript
var number = 3144134277.518717 | 0;
console.log(number); // -> -1150833019
、それがあったのかもしれませんラウンド値に使用されるが、この場合には値が、私はそれがあることを期待し(それは四捨五入されることになった場合)、私はC#と同じ動作をで再現できないものではありません。
// C#
3144134277.5187168 | 0 // -> Operator '|' cannot be applied to operands
// of type 'double' and 'int'
// or
Convert.ToInt64(3144134277.5187168) | 0 // -> 3144134278
ありがとう助けて!
これは実際に値を四捨五入するために使用されていますが、あなたが知る限り非常に危険です。 JavaScriptのビット単位の算術演算は、数値を32ビットに強制的に変換します。その結果、大きな数値に対してオーバーフローの問題が発生します。 – vlaz