0

我们想知道是否有一种方法可以将诸如“2,000”和“2,000,000”之类的财务数据分别格式化为“2M”和“2MM”——本质上是用 M 代替 1000。

理想情况下,我们可以使用一个格式字符串,这样 2000.0.ToString("X") 会返回“2M”,反之亦然。这样的格式字符串存在吗?如果没有 - 是否可以创建一个?

请注意,这些格式字符串有效:

#,#,M – this will convert 2,000 to 2M (and back)
#,#,,MM – this will convert 2,000,00 to 2MM (and back)
#,#,,,B – this will convert 2,000,000,000 to 2B (and back)

然而,我们需要一些更动态的东西——如果可能的话,它可以检测它是否是这些值中的任何一个,并且可以应用适当的格式字符串。

4

1 回答 1

3

我不知道实现您想要的格式。但是,您可以使用接口实现自己的接口IFormatProvider并将ICustomFormatter其传递给Format()andToString()调用。

于 2012-04-17T15:55:35.993 回答