0

「1.1」などの二重の数字を含むテキスト ボックスから項目を変換しようとしています。「.1」が削除され、変数「ポイント」に割り当てられるように、これをフォーマットする方法はありますか?

テキストボックス「txtTotal」からアイテムを変換する方法はありますか?その中に「1.1」が含まれ、ポイントの前の数値を保持するようにフォーマットされ、ポイント変数に割り当てられ、ポイントが出力されます「1」?

int points;

txtTotal.Text = string.Format("£{0:0}");
points = Convert.ToInt32(txtTotal.Text);
MessageBox.Show("{points}");

助けてくれてありがとう!

4

5 に答える 5

3

小数点以下のすべての桁を単に削除したい場合は、次を使用します。Math.Truncate();

http://msdn.microsoft.com/en-us/library/vstudio/c2eabd70(v=vs.110).aspx

于 2013-01-12T21:06:05.380 に答える
1

Split小数点のテキストを試してから、 . を£使用して最初の配列インデックスからを削除すると、出力が有効かどうかを確認するために使用できます。TrimStartint.TryParse

このような:

int points;
txtTotal.Text = string.Format("£{0:0}",txtTotal.Text);
if(int.TryParse((txtTotal.Text.Split('.')[0].TrimStart('£')),out points))
   MessageBox.Show(points.ToString());
于 2013-01-12T21:07:34.727 に答える
1

currencyの文字列形式を使用して、浮動小数点( ) 値の小数部分を抽出しようとしているようです。double

私はこのようなことをします:

using System.Globalization; // For NumberStyles enum

var currencyString = txtTotal.Text;

// Parse the TextBox.Text as a currency value.    
double value;
var parsedSuccesfully = double.TryParse(currencyString,
                                        NumberStyles.Currency, 
                                        null,
                                        out value);

// TODO: Handle parsing errors here.

var wholePounds = Math.Truncate(value);
var fractionalPounds = (value - wholePounds);

// Get the whole and fractional amounts as integer values.
var wholePoundsInteger = (int)wholePounds;
var fractionalPoundsInteger = (int)(fractionalPounds * 1000.0); // 3 decimal places
于 2013-01-12T21:13:36.183 に答える
0

テキスト自体が通貨形式 (一見するとポンド) の場合は、まず生の文字列を取得し、通貨の NumberStyle と適切なカルチャ (en-GB など) を指定して 10 進数に変換する必要があります。 :

string rawText = txtTotal.Text;
decimal currencyValue = Decimal.Parse(rawText, NumberStyles.Currency, new CultureInfo("en-GB"));

最後に、Math メソッドを使用して切り捨てます (丸めたい場合は丸めます)。

int finalValue = Math.Truncate(currencyValue);

それが通貨形式ではなく、単純な double 形式である場合は、double へのより簡単な解析で十分です。

double doubleValue = Double.Parse(txtTotal.Text);
int finalValue = Math.Truncate(doubleValue);

形式に一貫性がない場合は、TryParse( direct の代わりにParse) メソッドを使用して、最初に解析の問題に対処する価値があります。

于 2013-01-12T21:24:57.203 に答える
0

で表示したいだけの場合はMessageBox、文字列として処理できます。

string points = txtTotal.Text;
points = points.Substring(0, points.IndexOf("."));
MessageBox.Show(points);
于 2013-01-12T21:17:09.060 に答える