2010-02-06 94 views
3

我讨厌问这样一个愚蠢的问题,但我刚刚开始,所以在这里。格式化Math.Pow输出

myString = "2 to 2.5 power is " + Math.Pow(2, 2.5); 

我想将结果数字格式化为4位小数,并在MessageBox中显示字符串。我似乎无法弄清楚或在书中找到答案。谢谢!

+0

不是一个愚蠢的问题,解决这个问题的文档是糟糕透顶。 – 2010-02-06 17:56:37

+1

唯一愚蠢的问题就是没有被动摇的问题。 – 2010-02-06 17:59:46

+1

.NET格式字符串备忘单:http://john-sheehan.com/blog/net-cheat-sheets/ – 2010-02-06 18:05:29

回答

4

ToString方法应该做的伎俩。您可能需要在MSDN中查找以查找更多格式选项。

Math.Pow(2, 2.5).ToString("N4") 
+0

非常感谢。工作很好。 – Jimmy 2010-02-06 18:00:09

2
string.format("2 to 2.5 power is {0:0.000}", Math.Pow(2, 2.5)); 
+0

这是三个不是四个地方,结果不在'MessageBox'中。 – jason 2010-02-06 18:19:09

1
Math.Pow(2, 2.5).ToString("N4") 

是你想要什么,我认为。

more formatting options

+0

有关所有选项,请参阅http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx。也许D4更好。 – 2010-02-06 17:55:42

+0

我不这么认为,起初我的错误。 D4会在小数点前给出正确的位数 – 2010-02-06 18:00:46

1

这不是一个愚蠢的问题:其他几个答案是错误的。

MessageBox.Show(string.Format("2 to 2.5 power is {0:F4}", Math.Pow(2, 2.5))); 
3

要显示在您使用MessageBox.Show一个MessageBox一个string。特别是,有一个overload接受将显示在MessageBox中的单个string参数。因此,我们需要

string s = // our formatted string 
MessageBox.Show(s); 

现在,让我们弄清楚我们string是什么。这里有用的方法是String.Format。这里有用的参考是MSDN上的Standard Numeric Format Strings页面。我特别提请您注意fixed-point specifier "F" or "f"

定点(“F)格式说明符将数字转换为以下形式的字符串‘-ddd.ddd ...’,其中每个‘d’表示数字(0-9)。字符串开头,如果数字是负数减号。

精度说明符指示小数点后所需的数量。

因此,我们要

double result = Math.Pow(2, 2.5); 
string s = String.Format("2 to 2.5 power is {0:F4}", result); 

所以,把他们放在一起,

double result = Math.Pow(2, 2.5); 
string s = String.Format("2 to 2.5 power is {0:F4}", result); 
MessageBox.Show(s);