2017-05-16 11 views
0

に設定されていないだろう、私次のコードを持っている:XamarinたFOM UWPリリースモードの二重変数はゼロ

だから、
public static MapSpan GetMapspan(List<Position> pobj_Positions, bool pb_IncludeCurrentLocation) 
    { 

     bool gotRect = false; 
     double ld_north = 0; 
     double ld_west = 0; 
     double ld_south = 0; 
     double ld_east = 0; 
     double ld_workLatitude = 0; 
     double ld_workLongitude = 0; 
     double ld_centerLatitude = 0; 
     double ld_centerLongitude = 0; 
     Position lobj_CenterPosition; 
     MapSpan lobj_MapSpan = null; 

     try 
     { 

      ld_north = 0; 
      ld_west = 0; 
      ld_south = 0; 
      ld_east = 0; 
      ld_workLatitude = 0; 
      ld_workLongitude = 0; 
      ld_centerLatitude = 0; 
      ld_centerLongitude = 0; 

      if (pobj_Positions.Count > 0) 

私の挑戦私はif文に到達したとき、私のXamarinのためのリリースモードでは、UWPアプリを形成することです下に見られるように、ld_northとld_eastは実際にはゼロではありません。

ld_north 6.237901216026427E-299 double 
ld_west  0.0     double 
ld_south 0.0     double 
ld_east  7.8983449250911225E-299 double 

任意のアイデアはどのようにこの問題を解決し、するか、なぜそれが起こっている:あなたは私の時計の窓から下の実際の値を見ることができますか?

答えて

0

これまでにこの問題は発生していませんが、他の数値ではその値が正確に格納されていないため、丸め誤差が発生する可能性があります。あなたが見ることができるように、E-299は信じられないほど小さな価値を持っています。

精度が必要な場合は、小数点に移動します。あなたはダブルスを使用し続ける場合

また、あなたは

if (value < 0.00001 && value > -0.00001) 

を行うことによって、そのゼロかどうかを確認することができますし、これらの問題を考慮して、より大きくまたはより少ない、というよりも絶対介して、物事のチェックを開始します。

その他の問題は、ウォッチウィンドウに問題があります。実際にはゼロであっても、そのハードはわかりませんが、システムのバグである可能性があります。私が言及したように、私は前に0の問題は見ていません。

関連する問題