将十进制转换为字符串



如何将十进制转换为字符串而不舍入有特定的格式吗?

是我的值;

var price = 4569.996M;

我想要这个结果result = "4.569,99"。我可以检查是否有像这样的分隔符

customCulture.NumberFormat.NumberDecimalSeparator = ",";
customCulture.NumberFormat.NumberGroupSeparator = ".";

我尝试了一些代码

var result = price.ToString("#,##0.##", CustomCulture);
//when you try this result = "4.570"
var result = Convert.ToDecimal(price).ToString("#,#.#########", customCulture);
//when you try this result = "4.569,996"
var result = price.ToString("N");
//when you try this result = "4,570.00"
var result = price.ToString("N", customCulture);
//when you try this result = "4.569,996"

我的值可以是任何值。我只是想用特定的格式分开,并在逗号后分开两位数字,而不是四舍五入转换为字符串。

在小数点后有不需要的数字,您必须对值进行四舍五入,问题是如何进行四舍五入。在您的情况下,似乎您想要截断(4569.996->4569.99),即将四舍五入到零:

var price = 4569.996M;
string result = $"{Math.Round(price, 2, MidpointRounding.ToZero)}";

string result = Math.Round(price, 2, MidpointRounding.ToZero).ToString();

最新更新