gpt4 book ai didi

C++ 精度 - setprecision 的行为

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:26:32 29 4
gpt4 key购买 nike

据我所知,setprecision 函数指定了最小精度,但是当我运行以下代码时,我只得到小数点后的 3 个数字:

int main()
{
double a = 123.4567890;
double b = 123.4000000;
std::cout << std::setprecision(5) << a << std::endl; // Udesireble
std::cout.setf(std::ios::fixed);
std::cout << std::setprecision(5) << a << std::endl; // Desireble

std::cout << std::setprecision(5) << b << std::endl; // Udesireble
std::cout.unsetf(std::ios::fixed);
std::cout << std::setprecision(5) << b << std::endl; // Desireble
return 0;
}

打印:

123.46      // Udesireble
123.45679 // Desireble
123.40000 // Udesireble
123.4 // Desireble

有什么方法可以避免我自己检查小数点后的位数,以便知道是否设置为 fixed ?

最佳答案

我的印象是您需要先格式化为 string,然后用空格替换尾随零。

关于C++ 精度 - setprecision 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18567301/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com