如何最多显示两位数但可以显示更少?

时间:2017-03-14 16:42:55

标签: c# asp.net-mvc

如何将网格中的单元格格式化为零,一个或两个数字,具体取决于值是什么,但如果它有更多值,则将其剪切为两位数?

如果值为25,我们显示25。 如果值为26.3,则显示26.3。 如果值为27.59,则显示27.59。 如果值为28.124,则显示28.12。 如果值为11.1111111,则显示11.11。

这有意义吗?

我正在使用C#,MVC和javascript / jquery。

3 个答案:

答案 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();
相关问题