0

私は、タイプ通貨である2つの列を含むリストを持っています。私は小数点以下の桁と値段を含むこのフィールドから値を読み取ることができるようにしたい。通貨リストアイテムの値を取得する

私は3つの異なる方法を試してみましたが、私は数字だけではなくcurrecny記号を得るように見えます。また、10進値が正しく表示されていません。小数点タイプを使用する列は、 "InstallCosts"と "RentalCosts"です。

foreach (SPListItem item in listItemCollection) 
{ 
try 
{ 
string MPLS; 
if ((bool)item["MPLS"]) 
MPLS = "Yes"; 
else 
MPLS = "No"; 

//Conversion 1 
double installCost; 
bool convert1 = double.TryParse(item["InstallCosts"].ToString(), out installCost); 

double rentalCost; 
bool convert2 = double.TryParse(item["RentalCosts"].ToString(), out rentalCost); 


//Conversion 2 
string install = item["InstallCosts"].ToString(); 
double installConverted = double.Parse(install, NumberStyles.Currency, 
CultureInfo.CurrentCulture.NumberFormat); 

//Conversion 3 
//string converThis = String.Format("[0:c}", (string)item["InstallCosts"]); 


string results56 = (string)item["Title"] + " " + (string)item["DefinedFor"] + " " + 
"<b>MPLS:</b> " + MPLS + "<br/>" + "<b>Max Downstream:</b> " + 
(string)item["MaxDownstream"] + "<br/>" + "Install Cost:" + converThis + "<br/>" 
+ "Rental Cost (p.a.):" + rentalCost + "<br/>"; 

AvailabilityCheckerResultsTwo.Controls.Add(new LiteralControl(results56)); 
} 

結果は以下の通りです:

アルパカA汚いADSL製品のために:CCTVのサードパーティ製のリモートアクセスインタラクティブモデルやWebサイトのテスト。 MPLS:いいえ 最大ダウンストリーム: インストール費用:50 レンタル費用(PA):425.7

"コストをインストールする" ためのresutsする必要があります:£50.00 は、 "賃貸費用" についての結果は次のようになります。£425.70

私は今、一日のために、この問題で立ち往生されている

、そのおそらく私が行方不明です何かをどのような援助をお願い申し上げますが、私は本当に何を見ることができません!数字は任意の通貨やその他の書式設定情報が含まれていません

+4

通貨には2倍を使用しないでください。処理の精度によって微妙な損失が発生することがあります。小数点のみを使用します。 – OmegaMan

+1

'double less = 0.3;倍以上= 0.4; double diff = 0.1; return more - less == diff; // false! ' – ANeves

答えて

2

.NETで

多くのおかげで、。したがって、通貨記号を自分で追加する必要があります。

SPListItem item = ...; 
double d = Convert.ToDouble(item["InstallCosts"]); 
// will display the number in the current threads culture. In the US: $ <value> 
string currency = d.ToString("C"); 
+0

は数秒で私にそれを打ち明けました:)そしてOmegaManがDecimalを使って示唆したように、通常は通貨にとって最適です。このシナリオでは、目立つ違いがあるとは思いません。 –

+0

ヘイ・ステファン、おかげでそのトリックができました。それらは正しい形式であるべきであるように値を表示します。 £50.00。とても有難い –

関連する問題