[英]C# String.Format() to remove decimals after hundredths and remove decimals completely if decimals are trailing zeros
这些花车
77.1455
52.00
714.1554
5552.0001
应该变成这样
77.14
52
714.15
5552
有人建议
String.Format("G");
String.Format("G29");
String.Format("0.00");
但它们不能按我的需要工作。
使用“####.##”模式通过自然舍入来实现所需的结果(请参阅底部截断示例)。 几个例子:
var f1 = 1000.3455f;
var result = f1.ToString("####.##");
//result = 1000.35
舍入向下消除尾随零:
f1 = 1000.0001f;
result = f1.ToString("####.##");
//result = 1000;
在逗号分隔的数字 >= 1000 的格式字符串中添加逗号 if:
var f1 = 1000.3455f;
f1.ToString("#,###.##");
//result = 1,000.35;
如果你想在没有自然舍入的情况下删除超过百分之一的尾随数字:
var f1 = 1000.3455f;
f1 = (float)Math.Round(f1, 2, MidpointRounding.ToZero);
result = f1.ToString("#,###.##");
//result = 1,000.34
您可以截断小数点后两位的值:
(Math.Truncate(100 * value) / 100).ToString();
完整样本:
static void Main(string[] args)
{
float[] values = { 77.1455f, 52.00f, 714.1554f, 5552.0001f };
string[] formattedValues = Format(values);
Console.WriteLine(string.Join(Environment.NewLine, formattedValues));
}
private static string[] Format(float[] values)
{
return Array.ConvertAll(values, Convert);
}
private static string Convert(float value)
{
return (Math.Truncate(100 * value) / 100).ToString();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.