在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#中强制保留两位小数[重复]的主要内容,如果未能解决你的问题,请参考以下文章