在C#中强制保留两位小数[重复]

Posted

技术标签:

【中文标题】在C#中强制保留两位小数[重复]【英文标题】:Force two decimal places in C# [duplicate] 【发布时间】:2014-09-03 18:55:22 【问题描述】:

我遇到了这个问题,找不到解决方案。 这超级简单,我不知道为什么我找不到解决方案。

问题:

如果一个值返回例如“16.60”,在c#中我会读到“16.6”,但我也需要0,因为paypal API,它只接受一个没有十进制数字的值,或者如果它必须有十进制数,最小值和最大值必须为 2。

那我该怎么做呢?

我试过这个:

        string value_f = "16,6";
        decimal value_f_d = decimal.Parse(value_f);
        value_f_d = (decimal)Math.Round(value_f_d, 2);
        value_f = value_f_d.ToString("#.##");
        value_f = value_f.Replace(',', '.');

我想要这个输出:16.60,但给出这个:16.6

【问题讨论】:

您是否阅读了采用格式字符串的ToString 重载的文档?它告诉你# 是什么意思? 【参考方案1】:
string output = value_f_d.ToString("#.00", CultureInfo.InvariantCulture);

using System.Globalization 在顶部的 using 声明中)

【讨论】:

另外,考虑使用 InvariantCulture 来格式化您的号码。这避免了更换小数分隔符的必要性。 IE。 var output = value_f_d.ToString("#.00", System.Globalization.CultureInfo.InvariantCulture) @dbc,好电话 - 已更新答案。谢谢。

以上是关于在C#中强制保留两位小数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

T-SQL如何保留两位小数而不四舍五入[重复]

C#中如何只保留小数点后面两位?

C#中怎么对double型取两位小数。

c#保留小数点后两位怎么做?

C#中的decimal怎么保留两位小数

C#中如何只保留小数点后面两位?