簡體   English   中英

C# double 被轉換為字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM