2017-02-28 10 views
0

こんにちは、私はウェブアプリケーションに問題があります。私はほとんど終わっていますが、私はこの問題に乗り遅れています。したがって、このWebアプリケーションでは、販売価格と割引額についてユーザーからの入力が表示され、次に販売価格から合計価格を得る別のページが表示されます。私は最終的にセッション文字列の値を取得するために2番目のページ(このコードがあるところ)を取得しましたが、これらを正しく通貨にフォーマットする必要があります。コメントした部分の最初のページからコードをコピーして分析しましたが、私はほとんど迷っています。あなたはセッション値が存在し、絶対に確信している場合は、あなたが必要としない文字列セッションの通貨をcでフォーマットする#

if (Session["salesprice"] != null) 
    lblSalesPrice.Text = Convert.ToDouble(Session["salesprice"]).ToString("c"); 

if (Session["discountamount"] != null) 
    lblDiscountAmount.Text = Convert.ToDouble(Session["discountamount"]).ToString("c"); 

if (Session["totalprice"] != null) 
    lblTotalPrice.Text = Convert.ToDouble(Session["totalprice"]).ToString("c"); 

:あなたは通貨へのセッションで値を変換する必要がある場合は

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class Confirm : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     //int salesPrice, discountAmount, totalPrice; 
     UnobtrusiveValidationMode = System.Web.UI.UnobtrusiveValidationMode.None; 
     if (Session["salesprice"] != null && Session["discountamount"] != null && Session["totalprice"] != null) 
     { 
      lblSalesPrice.Text = Session["salesprice"].ToString(); 

      lblDiscountAmount.Text = Session["discountamount"].ToString(); 
      lblTotalPrice.Text = Session["totalprice"].ToString(); 

      /* 
      decimal salesPrice = Convert.ToDecimal(txtSalesPrice.Text); 
      decimal discountPercent = Convert.ToDecimal(txtDiscountPercent.Text)/100; 

      decimal discountAmount = salesPrice * discountPercent; 
      decimal totalPrice = salesPrice - discountAmount; 

      lblDiscountAmount.Text = discountAmount.ToString("c"); 
      lblTotalPrice.Text = totalPrice.ToString("c");*/ 

     } 
    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     lblMessage.Text = "This function hasn't been implemented yet."; 
    } 
    protected void Button2_Click(object sender, EventArgs e) 
    { 
     Server.Transfer("Default.aspx"); 
    } 
} 
+0

私は、あなたが何を問題にしているのか、最終目標が何であるのかよくわからないので、何かが欠けているはずです。あなたは文字列を通貨か全く違うものに変換する方法を尋ねていますか? –

+0

それは私が求めていることです。私はそれが今正しく働いている。 – iuliko

答えて

1

することは、あなたはこのような何かをすることができnullをチェックする標準数値書式の詳細については、https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspxを参照してください。

こちらがお役に立てば幸いです。

+0

ありがとうございました!とても助けになりました。だから私は欠けていたものが.ToString( "c")であり、文字列をdoubleに変換していたと推測しています。私がこれを正しく理解するために、セッション値はString "c"に保存され、前のページから呼び出していました。前のページの書式設定だけでなく、私はセッションの値からそれを呼び出すときに表示される通貨のためにこれを推測しています。 – iuliko

+0

"c"は通貨を表します。したがって、あなたは数字(この場合は倍数)をとり、「通貨」としてレンダリングしています。このようにして、.NETはアプリケーションのカルチャに番号をフォーマットします。 .NETは、米ドル、ユーロ、円などの適切なフォーマット方法を知っているので、さまざまな文化で本当に面白いです。値がどのようにセッションに格納されたかについては、投稿したコードからはわかりません。私の返答があなたの質問に正しく答えるなら、答えを受け入れてください。 –

関連する問題