我使用ToString()
方法将双精度值转换为string
。它适用于正数,但当double为负值时,例如-5,结果string
为5-
。我无法弄清楚如何正确使用格式说明符。
public: void displaynumber(double x) {
richTextBox1->Text = x.ToString();
}
我已经尝试格式化ToString("D")
来阅读MSDN格式化,编译没有错误,但我在运行时遇到异常:"格式说明符无效"。
答案 0 :(得分:0)
std::to_string
函数位于<string>
库中,您可以这样做
#include <string>
public:
void displaynumber(double x)
{
richTextBox1->Text = std::to_string(x);
}
语法x.ToString()
意味着ToString
是x
的方法,double
并且没有这样的方法。
答案 1 :(得分:0)
x.ToString()
意味着ToString是x的一种方法,它是一种数据类型double
,根本不应该编译。然而,to_string
是<string.h>
库中的一个函数。
#include <string>
public:
void displaynumber (double x) {
richTextBox1 -> Text = std::to_string(x);
}
答案 2 :(得分:0)
如果Double.ToString()
给你的是5-
而不是-5
,那可能是因为你的计算机被设置为一种文化,其中符号位于该号码之后。 (你在世界的哪个地方?Windows设置的语言是什么?)
如果您想要-5
,无论程序运行的文化如何,最简单的方法是指定要使用的文化。在这种情况下,我不要使用格式说明符,只需在CultureInfo::InvariantCulture
上指定只需格式提供程序的overload即可。
richTextBox1->Text = x.ToString(CultureInfo::InvariantCulture);
答案 3 :(得分:0)
x.ToString()实际上有效...它返回正确的字符串..即使x ia为负...问题出现在richTexBox1中,当它实际显示表单上的文本/字符串时,它会放置负号在号码之后。但是,如果我只是查看watch变量,richTextBox1的文本值实际上显示正确的字符串..即使是负数...即,当x = -56时,文本将是&#34; -56&#34; ..但是当它显示在表格上时......它变成了56 - 。
这是另一个调试或问题的主题。 感谢所有试图提供帮助的人。