[英]C# double is cast as a string
在 C# 中,我有以下代碼,但我無法弄清楚為什么我的雙精度值被呈現為字符串? 當我嘗試將 Tax 添加到 Total 時,它會恢復為字符串嗎?
double Total = 0;
double Tax = 0;
foreach (var Product in ProductList)
{
if (Product.Taxable) Tax = Tax + (Product.Price * .1) ;
Total = Total + (Product.Price * Product.Qty);
Console.WriteLine("{0} {1} at {2}", Product.Qty, Product.Item, Product.Price.ToString("C"), Product.Taxable, Product.Exempt);
}
Console.WriteLine("Sales Taxes: " + Tax.ToString("C"));
Console.WriteLine("Total: " + Total.ToString("C"));
Console.WriteLine("Taxes: " + Total + Tax);
這是因為在 C# 中 + 運算符從左到右計算:
"Taxes: " + Total + Tax
首先它執行"Taxes: " + Total
這使它成為一個字符串: "Taxes: 1.23"
然后它執行: "Taxes: 1.23" + Tax
導致"Taxes: 1.232.34"
例如。
要修復它,請先計算總和或添加括號:
"Taxes: " + (Total + Tax)
或者
var sum = Total + Tax
"Taxes: " + sum
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.