.NET 自定义数字格式:多位占位符 (##) 的意义是什么?

问题描述 投票:0回答:1

在 C# 文档和教程中,人们使用

##,#
###,#
##,##
等示例作为数字格式说明符。为什么要使用多个
#
占位符?当在小数点分隔符之前使用时,它似乎与单个
#
字符执行完全相同的操作,并且前面没有
0
占位符。

  • ####
    ==
    #
  • ##,#
    ==
    #,#
  • ###,#
    ==
    #,#
  • ##,##
    ==
    #,#

使用多个多余的文档示例

#

  • 官方文档
    2147483647 ("##,#", en-US)
    ->
    2,147,483,647
    • #,#
      也是一样的,对吧?
  • 教程
    Console.WriteLine(large.ToString("##.##"));
    // 输出
    "123456.79"
    • #.##
      也是一样的,对吧?
  • 教程
    format: ##### value: 123
    输出:
    123
    • #
      也是一样的,对吧?

我错过了什么吗?

.net number-formatting
1个回答
0
投票

# 自定义说明符文档指出,它表示您要将输入值四舍五入到小数点前最接近的数字:

“##”格式字符串导致值四舍五入到小数点前最接近的数字,其中始终使用远离零的四舍五入。例如,使用“##”格式化 34.5 将得到值 35。

然而,这充其量似乎具有误导性。如前所述,

##
对像
1234.56
这样的值将产生
1235
。但是,同一值上的单个
#
also 导致
12345

的作用是小数点后

#
占位符的数量。例如,在 #.# 上按下
1234.56
将产生
1234.6
,而在相同值上按下
#.##
将产生
1234.56
我不明白逗号声明 (

#

) 的

##
#,#
之间有何区别,除非 C# 在进行声明时可以检测到您当前的文化。对于我来说,在美国的英语机器上,我的声明必须采用英语文化(我不能使用
#,#
来表示我想使用小数逗号,即使指定使用小数逗号的区域时也是如此;我需要指定
#.#
和地区/文化,C# 会对其进行转换)。
    

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.