異なる言語の精度と範囲

異なる言語の問題の精度と範囲

精度数値の桁数、浮動小数点表現制限コンピュータは、任意の精度で格納することはできませんされ   
、特に小さな又は大きな数字は、いくつかの予期しない動作にしばしば、   
ときに大規模なデータ、データ量を大きなデータ量にいくらかの計算は小さなデータの量、およびデータ演算誤差の大量の場合には、発生したときに正常な結果をもたらす可能性があります。

説明

データを計算するためにコンピュータを使用する場合は、レンジデータの精度とデータはこの問題は非常に微妙であることに留意しなければならない、ここでまとめ、   
コンピュータがバイナリです。フロートは正確にバイナリで表現する方法はありません。我々のCPU浮動小数点表現は、2つの部分から構成:仮数と指数、   
そのような表現は、一般に、いくつかの浮動小数点演算は、いくつかのエラーを有するであろういくつかの精度を失うことになる、コンピュータとの無限の精度の実数の限られたメモリであります間の衝突   
共通言語IEEE 754浮動小数点数は、2進浮動小数点演算のIEEE標準(IEEE標準浮動小数点演算のためである   ) 
異常値(非正規化数)と(負のゼロを含む-0)浮動小数点数のフォーマット、いくつかの特別な値(無限大(INF)および非数値(NaNで))
常識として、Javaまたは他の言語のいずれかで、我々はすべて知っているべきである:
0.1 + 0.2が0.3に必ずしも等しくありません。
1/3 * 3必ずしも1に等しくありません。
LOG2 + 1に等しく書かれていないlog5。
このように常識を入れて、精度の小さな損失は効果がないようだ-と異なる言語で入力することができ、その後、結果を表示

C言語

精度C言語
    のダブルは
    精度が再びアップグレードを達成するために、独自のアルゴリズムを設計することができます-この後にそれについて話します

Java / Scalaの

BigDecimalクラスは、のBigInt計算する
BigDecimalを、16の以上の正確な計算のために使用される有効ビット数
16パーセンタイル値通貨を超えBigDecimalの有効数字、及び一般的な形式数値制御。  
ほとんどのビジネスコンピューティングでは、一般的なクラスjava.math.BigDecimalの正確な計算。
Java言語
  の数学及びコンピュータ計算が異なる
    数学的操作:1/3 
      コンピュ:1 / 3.toDouble 
      :. 1 / 3.0計算の
  Math.floor()はより大きくない最大の整数を返す
  )(恐らくMath.round - 「丸め」を表す丸い方法、
    アルゴリズムMath.floor(x + 0.5)は、約0.5およびその後切り捨てる元のデジタルを追加し、
    従って、恐らくMath.round(11.5)12であり、恐らくMath.round結果(-11.5)-11をもたらします。
  Math.ceilはより小さくない最小の整数である

Scalaの言語
    データ型
        scala.math.BigInt 
        scala.math.BigDecimal 
    //小数点以下
    ヴァルA = 3.1415926 
    valはB =( "%.. 2F")a.formatted 
、例えば:
    最大値算出
    選択()は、問題が発生する(200160)を選択超える
          (:INT、K:N-INT):選択DEF =のInt { 
               。IF(K == == 0 || N-K)1 
               。他(選択N-- 1、K - 1)N-(+選択1、K)
             } 
            次のデータが範囲のInt ---修正方法のうち、格納されるように、戻り値をダブルに設定されています

パイソン

Pythonのデフォルトは17 ビット精度すなわち小数点16 ビット
     一般的な場合、丸めおよび使用制御をフォーマット
     数学モジュールCEILは、X   以上かかりX 最小の整数。
     数学モジュールフロアX   -  
        から 数学 インポート CEIL  
        CEIL 2.5        
使用して高精度に小数でモジュールを、にgetcontext

R言語

R千万よりも多くの言語データは、データ型変換intに注意を払う- numri 
でダブルデータ型
    の最大値と最小値316-1E 

* 3 1/3 R言語NA 1である(使用できない)

R言語は無限表示されます(INF )および非数値(NaNで)、その理由は、数値と見なされていない場合
、デフォルトの倍精度データ型(倍精度)
    )(フロア:切り捨て; 
    天井():切り上げ; 
    ラウンド()に丸めインテグリン; 
    turnc():配向整数0; 
    signif-():位置決め精度のために予約番号。
数値の文字と数値の違いに注意してください
        numeircの
        文字を

SQL言語

場合値処理機能、MySQLは非常に正確な結果を与えることができ、無効な値の高さを制御することができる
明確に定義された丸みを帯びた特徴:正確な結果の値を、ROUND()は、数量に依存
    変換(小数(8,6 )、(63883.63 / 23625))

時間の数値ソートを使用して、定義のデータ型を確認してください、文字列が数値として表示されますが、別の種類
    の文字、数値に差値と注意
    このとそこExcelと同様に中国の存在NUMERICAL NUMERICALデジタル、Excelの数式データ。

オリジナル:大列の  異なる言語の精度と範囲


おすすめ

転載: www.cnblogs.com/petewell/p/11614906.html