記号なしで図を読むには?? 例 -8759.328 および 8569.659"
出力は double で 8759.32 および 8569.65 である必要があります
var debit = txtDebit.Text.Split('-');
oBankPages.DebitAmount = Convert.ToDouble(debit);
記号なしで図を読むには?? 例 -8759.328 および 8569.659"
出力は double で 8759.32 および 8569.65 である必要があります
var debit = txtDebit.Text.Split('-');
oBankPages.DebitAmount = Convert.ToDouble(debit);
私が理解できれば、あなたは2本の弦を持っています。
var numberStringOne = "-8759.328";
var numberStringTwo = "8569.659";
これらの文字列を s のように扱いたい場合はdecimal
、まずそれらを解析する必要があります。
var numberOne = decimal.Parse("-8759.328");
var numberTwo = decimal.Parse("8569.659");
次に、 Absを使用して、記号を無視して値を取得できます。Math.Abs
アブソリュートの略です。
var numberOne = Math.Abs(numberOne);
次に、適切な書式指定子を使用して数値を丸め文字列に変換します。
var formattedNumberOne = numberOne.ToString("D2");
多分
Console.WriteLine("{0:D2}", numberTwo);
したがって、すべて1行で。
var formattedNumberOne = Math.Abs(decimal.Parse("-8759.328")).ToString("D2");
これを試して。
string debit = Regex.Replace(txtDebit.Text, "[^0-9^.]+", "");
oBankPages.DebitAmount = Math.Abs(Convert.ToDouble(debit)).ToString("f");
これらのような分数は浮動小数点で正確に表現できないことに注意してください.あなたのケースでは簡単に解決できます.
double value = Math.Truncate(100 * Math.Abs(-8759.328)) / 100;
出力: 8759.32
decimal
ダブルの代わりに使用します。あなたのデータはお金に関連しています。1セントの割引でも重要です。float や double は損失の多いデータ型であり、数値の「先頭」のみを記憶し、末尾は忘れてしまうため、使用する余裕はありません。decimal
正確になるように設計されています。金融部門で働いたことがある場合は、覚えておいてください。フロートもダブルもありません。もちろん、上級会計士の命令によって、何らかの方法でレベルアップし、彼らの創造性により安全であると言われない限り..
サラミ攻撃について読む
oBankPages.DebitAmount = Math.Abs(Convert.ToDouble(txtDebit.Text));