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