如何根據值是什麼將格式化爲像文本一樣的網格中的單元格爲零,一位或兩位數字,但是如果它具有更多值,則將其剪切爲兩位數?如何最多顯示兩位數字,但可以顯示較少?
如果值是25,我們顯示25. 如果值是26.3,我們將顯示26.3。 如果值是27.59,我們顯示27.59。 如果值是28.124,我們顯示28.12。 如果值是11.1111111,我們會顯示11.11。
這是否有意義?
我使用的是C#,MVC和javascript/jquery。
如何根據值是什麼將格式化爲像文本一樣的網格中的單元格爲零,一位或兩位數字,但是如果它具有更多值,則將其剪切爲兩位數?如何最多顯示兩位數字,但可以顯示較少?
如果值是25,我們顯示25. 如果值是26.3,我們將顯示26.3。 如果值是27.59,我們顯示27.59。 如果值是28.124,我們顯示28.12。 如果值是11.1111111,我們會顯示11.11。
這是否有意義?
我使用的是C#,MVC和javascript/jquery。
如果你不想回合的分數值,你可以做兩個不同的東西:
//using String.Format()
string.Format("{0:#.##}", someValue)
//using ToString()
someValue.ToString("#.##")
工作小提琴here
如果您的值不是在一個雙/十進制,然後你c要麼通過檢查小數點的索引來操作字符串,並將字符串修剪爲右側的1或2個索引。但是,將值解析爲新的double值可能會更容易,然後讓字符串格式從中取出它。
如果我嘗試其中任何一種都行不通。它將3位小數的文本保留爲3.這是因爲它是文本嗎?如果我正在轉換小數類型,格式是否可用? – hyprsleepy
是的,它必須不是一個字符串才能工作 – maccettura
好吧,我用你的方式,但必須事先做double.parse。我想同時接受cnuts和你的答案,但認爲你是最有幫助的。謝謝! – hyprsleepy
在C#中,你可以通過用戶Math.Round功能
decimal d = 28.1234;
Var a = Math.Round(d,2);
一個將是28.12
我不認爲OP想要實際截斷值,而只是顯示具有最大小數點數的值。 – Abion47
是的。確實如此。 @maccettura已經回答瞭如何格式化字符串,我舉例說明了如何對值進行舍入並顯示到2個小數點。問題擁有者希望使用哪一個,這將滿足他的要求。 – ISHIDA
Abion47是正確的。 – hyprsleepy
所以,因爲你說這就像你開始用字符串文本:
string text = "25.1234";
然後你就可以將它解析爲雙所以你可以圍着它
double number = double.Parse(text);
然後你得完成將值舍入到需要的小數點並將其轉換爲字符串:
text = Math.Round(number, 2).ToString();
'yourValue.ToString(「。##」)'will do – haim770