スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: スポンサー広告

Trailing Zero

 C#による開発において、数値を扱う事は常のことだ。で、浮動小数を扱うなら、doubleではなくdecimalにすべきというのは、よく知られていることだ。で、そのdecimalを扱う時、よくわからない事が起こる。decimalな数値をToStringメソッド(引数無)で文字列にした時、小数点もないのに、「.000」がつく事がある。
 Webサービス(WCFやSoap)経由でサーバーから値を受け取った時によく起こる。

デバッグ時は、普通の数値に見える。クイックウォッチなんかで見た時は「1」。
でもToString()すると、「1.000」になる。
一方、ソースコード上で、
var decVal = decimal.One;
System.Console.WriteLine(decVal.ToString());
としても、結果は「1」になる。何が違う?とおもいつつ、実害ないから良いかと放置しておいた。
 でも、この間、とある画面のとある数値用コントロールで、表示上の現象を指摘された事項がこれに絡んでいるものだったので、改めて調べる事になった。
 意味的には、「1」も「1.000」も変わらないが、視力が弱い人は、「一(1.000)」ではなく「千(1,000)」に見えることがある。これは業務上の処理において、非常に厄介な話で、確実にトラブルの元になる。やった後で気づいても、それでは遅いのだ。毎日毎日毎日、大量と言って良い件数を扱う現場の人に対して、「気をつけて見れば?」的な指摘にはほぼ意味がない。
続きを読む
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0

サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。