Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ToString()函数中的舍入浮点?_C++_C++ Cli - Fatal编程技术网

C++ ToString()函数中的舍入浮点?

C++ ToString()函数中的舍入浮点?,c++,c++-cli,C++,C++ Cli,所以我有一个标签的表单,它应该显示浮点值,问题是我需要将这个数字四舍五入到小数点后2位,无论发生什么情况: label1->Text = System::Convert::ToString( (float)((float)temperature/204.6) ); 我试着找了几个小时,但我发现没有直接对beast方程进行四舍五入的方法,而且据我所知,没有办法告诉ToString()将其四舍五入到2位小数 有没有简单的方法可以将结果四舍五入到ToString方法中的小数点后2位?你不能将结

所以我有一个标签的表单,它应该显示浮点值,问题是我需要将这个数字四舍五入到小数点后2位,无论发生什么情况:

label1->Text = System::Convert::ToString( (float)((float)temperature/204.6) );
我试着找了几个小时,但我发现没有直接对beast方程进行四舍五入的方法,而且据我所知,没有办法告诉ToString()将其四舍五入到2位小数


有没有简单的方法可以将结果四舍五入到ToString方法中的小数点后2位?

你不能将结果乘以100,转换为int,然后用“转换为浮点”除以100吗?

你不能将结果乘以100,转换为int,然后用“转换为浮点”除以100吗?

这很简单:

String^ s = String::Format("{0:N2}", temperature/204.6); 

这很简单:

String^ s = String::Format("{0:N2}", temperature/204.6); 
在ToString方法中,有没有简单的方法将结果四舍五入到小数点后2位

不,不适用于
std::tostring()
和要保留尾随零的情况。将
std::ostringstream
与适当的

std::ostringstream oss;
开放源码软件
在ToString方法中,有没有简单的方法将结果四舍五入到小数点后2位

不,不适用于
std::tostring()
和要保留尾随零的情况。将
std::ostringstream
与适当的

std::ostringstream oss;

oss这里是与toFixed等价的JavaScript:

#include <iostream>

std::string ToFixed(double number, size_t digits)
{
    char format[10];
    char str[64];
    sprintf_s(format, "%%0.%zdf", digits);
    return std::string(str, sprintf_s(str, format, number));
}

int main()
{
    std::cout << ToFixed((double)12345 / 204.6, 2) << std::endl;

    return 0;
}

以下是与toFixed等效的JavaScript:

#include <iostream>

std::string ToFixed(double number, size_t digits)
{
    char format[10];
    char str[64];
    sprintf_s(format, "%%0.%zdf", digits);
    return std::string(str, sprintf_s(str, format, number));
}

int main()
{
    std::cout << ToFixed((double)12345 / 204.6, 2) << std::endl;

    return 0;
}

std::setprecision(2)
,Ithink@Neil是的,谢谢。
std::setprecision(2)
,Ithink@Neil是的,谢谢。