所以我有一个带有标签的表单应该显示浮点值,问题是我需要将该数字四舍五入到小数点后两位:
label1->Text = System::Convert::ToString( (float)((float)temperature/204.6) );
我试过寻找几个小时,但是我发现没有方法直接舍入那个野兽方程式,据我所知,没有办法告诉ToString()将事物舍入为2位小数。
有没有简单的方法将结果舍入到ToString方法中的2位小数?
答案 0 :(得分:4)
这很简单:
public class InterFace {
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec("xterm");
BufferedWriter w = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
w.write("ls");
w.flush();
w.close();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s;
while ((s = r.readLine()) != null) {
System.out.println(s);
}
}
catch (IOException io) {
io.printStackTrace();
}
}
}
答案 1 :(得分:2)
有没有简单的方法将结果舍入到ToString方法中的2位小数?
不,不是std::tostring()
,如果你想保留尾随零。请使用std::ostringstream
代替相应的I/O manipulators:
std::ostringstream oss;
oss << std::fixed << std::setprecision(2) << (temperature/204.6);
label1->Text = oss.str();
答案 2 :(得分:1)
你可以多次将结果100,强制转换为int,然后除以100并使用强制转换为浮点数吗?
答案 3 :(得分:1)
这是与toFixed相当的JavaScript:
var dictionary = new Dictionary<string, float>();
dictionary.Add("var1", 5);
dictionary.Add("var2", 6);
dictionary.Add("var3", 7);
dictionary.Add("var4", 8);
var value1 = dictionary["var1"]; //5
var value2 = dictionary["var2"]; //6
var value3 = dictionary["var3"]; //7
var value4 = dictionary["var4"]; //8
打印:
#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;
}