如何在ToString(CultureInfo.NumberFormat)中决定小数位数
本文关键字:决定 小数 NumberFormat ToString CultureInfo | 更新日期: 2023-09-27 18:28:41
我今天在C#中遇到了一个关于使用CultureInfo格式化十进制的问题。我有一个十进制fValue,当它运行fValue时,它的值为999。返回ToString(CurrentCulture.NumberFormat)999.0000。在VS中调试时,我可以在"监视"窗口中获得以下值:
fValue //returns 999
fValue.ToString(CurrentCulture.NumberFormat) //the issue returns 999.0000
(999M).ToString(CurrentCulture.NumberFormat) //returns 999
CurrentCulture.NumberFormat.NumberDecimalDigits //returns 2
为什么第二个值返回999.0000而不是999或999.00?对不起,我的英语糟透了,请帮帮我。
使用CurrentCulture.NumberFormat.CurrentDecimalDigits属性,您将获得decimal类型的小数位数。999M类型是(Decimal)类型,它被认为是Currency。
Decimal结构在从字符串解析后以及在执行计算时保留值的精度。ToString()方法正确地指示了值的实际内部精度,无论使用的是哪种区域性。
然而,调试器似乎以最简单的形式显示值,而不是显示ToString()将返回的内容,这至少会让事情变得混乱。