2012-09-21 2 views
11

私の計算機では、私が18/7するときに2.5714285714285714285714285714286が得られます。 私の超限定数学スキル2は商となり、残りは.5714285714285714285714285714286です。JavaScriptで浮動小数点としてintと剰余として商を得るには

これをJavaScriptでモデル化するにはどうすればよいですか?

ありがとうございます!最も数学

+2

残りは「4」ではないでしょうか? '18%7 === 4'。 – elclanrs

+0

残りの部分が正しい名前ではない可能性があります。私はその浮動小数点ビットが欲しいです。 –

答えて

21
var floatingPointPart = (18/7) % 1; 
var integerPart = Math.floor(18/7); 
+1

どうして 'Math.trunc'?その後、負の数でも動作します。 – letmaik

6
var rawQuotient = 18/7; 
var remainder = rawQuotient % 1; 
var quotient = rawQuotient - remainder; 

、小数部分と全体の部分との間の区別のための実際の必要性は、特に全部が本物のように、画分(18/7ths)として表すことができることを考えると、ありません数、または整数と分数の混合(2と4/7ths)として表示されます。

プログラミングやエンジニアリング、または他の派生物になったときは、分離のための明確な用途があります。商は実際には整数と小数ですが、それを表すことを選択します。

+0

これは(単純な算術を使用して)答えは数学ライブラリに依存する受理された答えより優れています。 – Curious

+0

ここで、商は剰余を通じて誘導される丸め誤差を有する可能性がある。 – Ethan

0

実際には、2が商であり、4/18が剰余です。

Math.divideby= function(d, dby){ 
    var q= Math.floor(d/dby), r= d-(q*dby); 
    return r== 0? q:q+' and '+r+'/'+d; 
} 

Math.divideby(18,7)

/*戻り値:(文字列)*/

2と4/18

2

2は商(または結果の整数部分)、4は剰余、4/7は結果がOPが要求している浮動小数点部分です。

var result = (18/7); 
var integerPart = Math.floor(result); 
var floatingPointPart = result - integerPart; 

integerPartおよびfloatingPointPartが要求された値です。

1

/ & 演算子を使用して簡単な数学を使用して回答を得ることができます。

第1の値& 'num2'を第2の値として 'num1'を考慮してください。その後:

var Quotient = (num1 - (num1 % num2))/num2; 

var FloatingPoint = (num1 % num2)/num2; 
4

Math.floorは間違った方向への結果の丸めの問題負の数の場合には、interger商を得るために、ビット単位の操作を使用する方が良いでしょうがあります。

var quot = ~~(num/num1) 

これはうまくいきます。

関連する問題