如何将网格中的单元格格式化为零,一个或两个数字,具体取决于值是什么,但如果它有更多值,则将其剪切为两位数?
如果值为25,我们显示25。 如果值为26.3,则显示26.3。 如果值为27.59,则显示27.59。 如果值为28.124,则显示28.12。 如果值为11.1111111,则显示11.11。
这有意义吗?
我正在使用C#,MVC和javascript / jquery。
答案 0 :(得分:3)
如果您不想对值进行舍入,则可以执行两项不同的操作:
//using String.Format()
string.Format("{0:#.##}", someValue)
//using ToString()
someValue.ToString("#.##")
工作小提琴here
如果您的值不是双精度/小数,那么您可以通过检查小数点的索引来操纵字符串,并将字符串修剪为右侧的1或2个索引。但是,将值解析为新的double可能更容易,然后让字符串格式化从那里获取它。
答案 1 :(得分:1)
在C#中,您可以使用Math.Round函数
decimal d = 28.1234;
Var a = Math.Round(d,2);
a将是28.12
答案 2 :(得分:1)
因为你说它像一个文本,你用一个字符串开头:
string text = "25.1234";
然后你可以把它解析成一个双,这样你就可以围绕它:
double number = double.Parse(text);
然后通过将值四舍五入到您需要的小数并将其转换为字符串来完成:
text = Math.Round(number, 2).ToString();