1

我正在将一些代码从 VB 翻译成 C# 并遇到了这个问题:

Format(seg.R, " 00.00000;-00.00000") // <-- There is a leading space in the first format string

...打印...

 00.00000 //or...
-00.00000

...取决于小数是正数还是负数。string.Format有没有一种简单的方法可以用 C#或myObj.ToString("[format here]")函数 来做到这一点?


编辑:注意格式字符串中的额外空格。这通过在没有负号时添加前导空格来使字符串长度相同。

4

2 回答 2

2

是的:

http://blog.stevex.net/string-formatting-in-csharp/

http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

这是您在上面发布的内容的快速答案:

whateverstring.ToString(" 00.00000;-00.00000");
-29.69 -> "-29.69000"
48 -> " 48.00000" <-notice space padding the front.

分号分隔的格式字符串:“00.00;##.##”将 00.00 模式应用于正值和零值,将 ##.## 模式应用于负值。

换句话说,您之前对格式化字符串所做的工作无需任何调整 :-)

于 2010-12-21T18:19:25.000 回答
0

是的,String.Format() 会做任何 VB Classic 的 Format 函数会做的事情。

http://blogs.msdn.com/b/kathykam/archive/2006/03/29/564426.aspx

于 2010-12-21T18:20:28.593 回答