2017-03-14 25 views
3

如何根據值是什麼將格式化爲像文本一樣的網格中的單元格爲零,一位或兩位數字,但是如果它具有更多值,則將其剪切爲兩位數?如何最多顯示兩位數字,但可以顯示較少?

如果值是25,我們顯示25. 如果值是26.3,我們將顯示26.3。 如果值是27.59,我們顯示27.59。 如果值是28.124,我們顯示28.12。 如果值是11.1111111,我們會顯示11.11。

這是否有意義?

我使用的是C#,MVC和javascript/jquery。

+2

'yourValue.ToString(「。##」)'will do – haim770

回答

3

如果你不想回合的分數值,你可以做兩個不同的東西:

//using String.Format() 
string.Format("{0:#.##}", someValue) 
//using ToString() 
someValue.ToString("#.##") 

工作小提琴here

如果您的值不是在一個雙/十進制,然後你c要麼通過檢查小數點的索引來操作字符串,並將字符串修剪爲右側的1或2個索引。但是,將值解析爲新的double值可能會更容易,然後讓字符串格式從中取出它。

+0

如果我嘗試其中任何一種都行不通。它將3位小數的文本保留爲3.這是因爲它是文本嗎?如果我正在轉換小數類型,格式是否可用? – hyprsleepy

+0

是的,它必須不是一個字符串才能工作 – maccettura

+0

好吧,我用你的方式,但必須事先做double.parse。我想同時接受cnuts和你的答案,但認爲你是最有幫助的。謝謝! – hyprsleepy

1

在C#中,你可以通過用戶Math.Round功能

decimal d = 28.1234; 
Var a = Math.Round(d,2); 

一個將是28.12

+0

我不認爲OP想要實際截斷值,而只是顯示具有最大小數點數的值。 – Abion47

+0

是的。確實如此。 @maccettura已經回答瞭如何格式化字符串,我舉例說明了如何對值進行舍入並顯示到2個小數點。問題擁有者希望使用哪一個,這將滿足他的要求。 – ISHIDA

+0

Abion47是正確的。 – hyprsleepy

1

所以,因爲你說這就像你開始用字符串文本:

string text = "25.1234"; 

然後你就可以將它解析爲雙所以你可以圍着它

double number = double.Parse(text); 

然後你得完成將值舍入到需要的小數點並將其轉換爲字符串:

text = Math.Round(number, 2).ToString(); 
相關問題