2011-10-25 17 views
-2

なぜ売上税は小計と合計に加算されないのですか?キャッシャープログラムで消費税を計算する

//Value from xQuantity 
    double quantity = Convert.ToDouble(xQuantity.Text); 

    //Value from xUnitPrice 
    double unitPrice = Convert.ToDouble(xUnitPrice.Text); 

    //Value from xSubTotal and xTotalPrice 
    double SubTotal = quantity * unitPrice; 
    xSubTotalTextBox.Text = Convert.ToString(subTotal); 

    double Tax = subTotal * 1.06 + subTotal; 
    xSubTotalTextBox.Text = Convert.ToString(subTotal); 
    xTotalPrice.Text = Convert.ToString(totalPrice); 

    //Calculate subtotal and totalprice 
    subTotal = Convert.ToDouble(xQuantity.Text) * Convert.ToDouble(xUnitPrice.Text); 
    xSubTotalTextBox.Text = subTotal.ToString(); 
    xTotalPrice.Text = (subTotal * Tax).ToString();   
} 

private void xBalance_Click(object sender, EventArgs e) 
{ 
    xRetTextBox.Visible = true; 
    xReturn.Visible = true; 

    double totalPrice = Convert.ToDouble(xTotalPrice.Text); 
    double receive = Convert.ToDouble(xRecvTextBox.Text); 
    double subTotal = totalPrice - receive; 
    xRetTextBox.Text = Convert.ToString(totalPrice); 

    if (totalPrice < .01) xRetTextBox.BackColor = Color.Green; 
    else xRetTextBox.BackColor = Color.Red; 
} 
+0

[SSCCE](http://sscce.org)、してください。 –

+1

私はコード自体の正しさをチェックしていませんが、金銭的なものには 'double'を使用しないでください。浮動小数点や二重に悩む丸めの問題に悩まされない 'decimal'を使用してください。 10進対2倍についてのこの質問を参照してください:http://stackoverflow.com/questions/316727 –

答えて

3

この行ので:

double Tax = subTotal * 1.06 + subTotal; 

は間違っているはずです。税金はsubTotal*1.06+subTotalにできません。

はたぶん、あなたは意味:

double totalPrice = subTotal * (1.06/100) + subTotal ; 
xSubTotalTextBox.Text = Convert.ToString(subTotal); 
xTotalPrice.Text = Convert.ToString(totalPrice); 
+0

それは動作しませんでした。 – user1010077

+0

@ user1010077あなたは私が指摘したもの以外にも多くの問題があると私は恐れています。 – Icarus

+0

大丈夫です。私はこの行のTaxを1.06に変更しました。 xTotalPrice.Text =(subTotal * Tax).ToString(); – user1010077

1

実際の税額は0.06 *小計(6%と仮定)です。合計(税込み)は1.06 * subTotalです。

関連する問題