C#とPythonのフロート丸めの違い

glexey

私はPythonでアプリケーションを開発しており、一部はc#で記述されています(高速化のため)。「round」関数と文字列浮動小数点フォーマット関数を使用すると、c#浮動小数点の丸めがPythonと「反対」に動作する理由に戸惑います。次に例を示します。

Python(2.7)

>>> round(6.25, 1)
6.3
>>> "%.1f"%6.25
6.2

C#

>>> Math.Round(6.25,1)
6.2
>>> (6.25).ToString("F1")
6.3

PythonとC#の間で動作が「逆転」しているように見える理由を誰かが理解していますか?「倍精度」浮動小数点値を10進数のNに丸めて、PythonとC#の間で同じ文字列出力が保証されるようにする方法はありますか?

ワイハリー|

これは、呼び出している2つのメソッドの中間解像度によるものです。

Pythonの round(number[, ndigits])

ndigits小数点以下の桁に丸められた浮動小数点値の数値を返します。ndigits省略した場合、デフォルトでゼロになります。結果は浮動小数点数です。値は、10の累乗からマイナスに最も近い倍数に丸められndigitsます。2つの倍数が等しく近い場合、丸めはから離れて行われます0(たとえば、round(0.5)is1.0round(-0.5)is -1.0)。

C#の Math.Round(double, int)

倍精度浮動小数点値を指定された小数桁数に丸め、中点値を最も近い偶数に丸めます。

言い換えると:

  • Pythonはゼロから四捨五入します(より遠いために6.25なります6.36.306.2
  • 最も近い偶数のC#ラウンドように6.25なる6.2ので、6.2最も近い偶数です。

Round(double、int、MidpointRounding)などの列挙値Math.Roundをとるオーバーロードの1つを使用して、これを修正できます。例:MidpointRounding

Math.Round(6.25, 1,  MidpointRounding.AwayFromZero);

これはPythonの丸めと同じことをします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してくださいdebugcn@gmail.com

編集
0

コメントを追加

0

関連記事

分類Dev

TSQLの丸めとC#の丸め

分類Dev

フロートとフロートの丸めの代わりにダブル

分類Dev

名前付きタプルのPytestと丸めフロート

分類Dev

C#とC / C ++でのバイナリからフロートへの変換の違い

分類Dev

FPUの丸めとタイブレークの違い

分類Dev

CとC ++でのフロート操作の違い

分類Dev

C#とCOBOLの10進丸め

分類Dev

Objective-Cフロート丸め

分類Dev

VB.NETプロジェクトとC#プロジェクトでの埋め込みリソースの命名の違い

分類Dev

C#でのバッファとストリームの違い

分類Dev

なぜJavaは私のフロート計算を丸めていますか?

分類Dev

Rubyの最も近い四半期にフロートを丸めます

分類Dev

C#とVB.Netの同じプログラムのオーバーフロー動作の違い

分類Dev

新しいPythonフォーマット関数による小数の丸め

分類Dev

アンドロイド用の丸めフロート

分類Dev

フロートを次の奇数の整数に丸めます

分類Dev

Pythonのフロートの組み込みpow()とmath.pow()の違いは?

分類Dev

PHPでのお金の丸めとフォーマット

分類Dev

フロートを四分の一に丸める方法

分類Dev

フロートをhaskellのintに丸める

分類Dev

Pythonのデフォルトの丸めモードと、それを別の丸めモードに指定する方法は?

分類Dev

C#の使用とJavaインポートの違い

分類Dev

C#とVBAレコードセットのDAOの違い

分類Dev

JavascriptとのC#文字列ソート「@」記号の違い

分類Dev

printf%.3fとbcの丸め動作の違い

分類Dev

2D均一メッシュグリッド上の最も近いポイントへのランダムフロートのPython丸め

分類Dev

スタックオーバーフロー例外におけるc ++とc#の違い

分類Dev

Pythonの丸め

分類Dev

プラットフォームによってC#の丸めは異なりますか?

Related 関連記事

  1. 1

    TSQLの丸めとC#の丸め

  2. 2

    フロートとフロートの丸めの代わりにダブル

  3. 3

    名前付きタプルのPytestと丸めフロート

  4. 4

    C#とC / C ++でのバイナリからフロートへの変換の違い

  5. 5

    FPUの丸めとタイブレークの違い

  6. 6

    CとC ++でのフロート操作の違い

  7. 7

    C#とCOBOLの10進丸め

  8. 8

    Objective-Cフロート丸め

  9. 9

    VB.NETプロジェクトとC#プロジェクトでの埋め込みリソースの命名の違い

  10. 10

    C#でのバッファとストリームの違い

  11. 11

    なぜJavaは私のフロート計算を丸めていますか?

  12. 12

    Rubyの最も近い四半期にフロートを丸めます

  13. 13

    C#とVB.Netの同じプログラムのオーバーフロー動作の違い

  14. 14

    新しいPythonフォーマット関数による小数の丸め

  15. 15

    アンドロイド用の丸めフロート

  16. 16

    フロートを次の奇数の整数に丸めます

  17. 17

    Pythonのフロートの組み込みpow()とmath.pow()の違いは?

  18. 18

    PHPでのお金の丸めとフォーマット

  19. 19

    フロートを四分の一に丸める方法

  20. 20

    フロートをhaskellのintに丸める

  21. 21

    Pythonのデフォルトの丸めモードと、それを別の丸めモードに指定する方法は?

  22. 22

    C#の使用とJavaインポートの違い

  23. 23

    C#とVBAレコードセットのDAOの違い

  24. 24

    JavascriptとのC#文字列ソート「@」記号の違い

  25. 25

    printf%.3fとbcの丸め動作の違い

  26. 26

    2D均一メッシュグリッド上の最も近いポイントへのランダムフロートのPython丸め

  27. 27

    スタックオーバーフロー例外におけるc ++とc#の違い

  28. 28

    Pythonの丸め

  29. 29

    プラットフォームによってC#の丸めは異なりますか?

ホットタグ

アーカイブ