簡體   English   中英

驗證並打印小數點后兩位的double值

[英]Verify and print double value in 2 decimal places

我正在讀取一個字符串值,並嘗試通過此方法確認其值是貨幣值

double value;
if (!double.TryParse(sumValue, out value) || Math.Round(value, 2) != value)
{
    MessageBox.Show("Not a double value");
}

這很好。 當我使用此MessageBox.Show(Math.Round(value, 2))該問題未在2個小數位后顯示該值。 我可以為此做哪些更改,我是否也在使用正確的方法進行驗證?

值的輸出方式取決於實際值。

雖然Math.Round(value, 2)會將值四舍五入到小數點后兩位,但如果舍入后的值是1.00或1.50(例如),則默認顯示為尾隨零,它將顯示為“ 1”或“ 1.5” 。

如果要將值顯示為小數點后兩位,則有多種方法可以執行此操作。 所有這些都要求您調用string.Format或使用format參數顯式調用.ToString

一種是使用:

MessageBox.Show(String.Format("{0:0.00}", value));

第一個“ 0”代表數字本身,而“ 0.00”則向格式化引擎指示這是一個帶有兩位小數的浮點數。 您可以改用“#:##”。

資源

另一個是:

MessageBox.Show(value.ToString("F"));

這是定點格式說明符。 加一個數字指定小數位數(默認為2)。 資源

假設您說自己的代碼“效果很好”。 那么您的驗證步驟是正確的。 您正在檢查該值是一個數字,並且該值四舍五入到小數點后兩位是您想要的值。 您無需做其他任何事情。

您可以嘗試使用具有自定義格式的.ToString()方法,如下所示:

value.ToString("#.##");

只需使用代碼

MessageBox.Show(Convert.ToString(Math.Round(value,2)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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