格式化小数以删除尾随零并具有千分之一分隔符

Format a decimal to remove trailing zeros and have a thousandths separator

我目前有代码可以根据 SQL 查询求和计算小数值。我希望将此值格式化为在需要时具有 2 个小数位,在为整数时为 0。除此之外,我还想保留千分位分隔符。

示例:

 string value1 = "1234.00"
 string value2 = "1234.56"

//my goal
//parsed = 1,234
//parsed2 = 1,234.56

我尝试了多种格式变体,但都没有成功。正确的语法是什么?

非常感谢。

首先要注意的是,您不能将字符串正确格式化为数字,它们必须是数字类型。如果需要,您可以使用 double.TryParse / double.Parse 从字符串创建数字类型。

但是您要查找的格式是 #,000.##

var value1 = 1234.00;
var value2 = 1234.56;
var format = "#,###.##";
Console.WriteLine(value1.ToString(format)); // 1,234
Console.WriteLine(value2.ToString(format)); //1,234.56

实例:https://dotnetfiddle.net/YoYcP0

custom numeric format strings and standard numeric format strings

的全部详情