设置财务数据格式,如;2000年“;作为「;2M“;在C#.NET WinForms和WPF应用程序中使用自定义格式字符串

设置财务数据格式,如;2000年“;作为「;2M“;在C#.NET WinForms和WPF应用程序中使用自定义格式字符串,c#,.net,wpf,string,format,C#,.net,Wpf,String,Format,我们想知道是否有办法将“2000”和“2000000”等财务数据分别格式化为“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

我们想知道是否有办法将“2000”和“2000000”等财务数据分别格式化为“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)

但是,我们需要一些更具动态性的东西——能够检测这些值是否存在,并在可能的情况下应用适当的格式字符串。

我不知道有什么格式可以实现您想要的。但是,您可以使用接口实现自己的,并将其传递到
Format()
ToString()
调用中。

我不知道有什么格式可以实现您想要的。但是,您可以使用接口实现自己的,并将其传递到
Format()
ToString()
调用中。

您将需要识别更多的情况。例如,“2001”是否抛出异常,返回“2001”还是返回“2M”?Hi Bob-在本例中,我们希望将其显示为2.001M。我们希望M的数量是按比例控制的,即1000、1M、10000、10M、1234为1.234M,依此类推。@GauravSharma所以你可以在一个循环中将数量除以1000,然后加上一个M,直到它达到第一名为止,即1000/1000=1M 1000000/1000=1MM@caseyr547有点诡计,因为我们只是将此格式字符串分配给我们的供应商网格,如下所示:ultraGridColumn.format=“#,#,M”——这是可行的,但不能应对变化,也就是说,如果我们投入1000000,它会给我们1000万,而不是1000万1MM@Gaurav是否将1000001显示为1.000001毫米?您是否考虑了最大有效位数?您将需要识别更多案例。例如,“2001”是否抛出异常,返回“2001”还是返回“2M”?Hi Bob-在本例中,我们希望将其显示为2.001M。我们希望M的数量是按比例控制的,即1000、1M、10000、10M、1234为1.234M,依此类推。@GauravSharma所以你可以在一个循环中将数量除以1000,然后加上一个M,直到它达到第一名为止,即1000/1000=1M 1000000/1000=1MM@caseyr547有点诡计,因为我们只是将此格式字符串分配给我们的供应商网格,如下所示:ultraGridColumn.format=“#,#,M”——这是可行的,但不能应对变化,也就是说,如果我们投入1000000,它会给我们1000万,而不是1000万1MM@Gaurav是否将1000001显示为1.000001毫米?您是否考虑了最大有效位数?