c++中的精度
Precision in C++
所以我在这里和其他地方看到了一些关于提高十进制精度的帖子,但由于一些奇怪的原因,我的生活不能让它工作。这是我得到的:
//Euler's Method Approximation
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int n;
int i=1;
double h;
double x_n;
double y_n;
cout << "Enter n: " ;
cin >> n;
cout << endl << "Enter h: " ;
cin >> h;
cout << endl << "Enter x_0: ";
cin >> x_n;
cout << endl << "Enter y_0: ";
cin >> y_n;
cout << "n=" << i << " x=" << x_n << " y=" << y_n << endl;
++i;
while(i<n+1)
{
y_n = y_n + 3*x_n*h*y_n;
x_n = x_n + h;
cout << "n=" << i << " x=" << x_n << " y=" << setprecision(6) << y_n << endl;
++i;
}
return(0);
}
我为混乱道歉。因为时间紧迫,我把它扔了下来,但现在我有更多的时间来研究它。我能做错什么吗?数学确实根据输入生成任意精度的小数,并且所有变量类型都是应有的。甚至还有iomanip图书馆。指针吗?(仍然只输出百万分之一)
按照@40two在评论中的建议,将std::fixed
放在cout << "n=" << i << " x=" << x_n << " y=" << setprecision(6) << y_n << fixed << endl;
的末尾
对于ofstream
,您可以使用precision
方法,http://www.cplusplus.com/reference/ios/ios_base/precision/
相关文章:
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 正在将csv文件读取为双精度矢量
- 如何理解将半精度指针转换为无符号长指针和相关的内存对齐
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 如何在C++中的同一函数中使用字符串和双精度
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 如何计算具有指定类型的表达式的相对精度和绝对精度
- 如何打印boost多精度128位无符号整数
- 检查是否以特定精度给出双精度
- 转换函数,将 std::数组的双精度作为参数或双精度作为参数单独转换
- C 字符串返回字符串的整数/双精度/长整型值
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 如何使双精度值的 C++ 和 C# 中的结果相同
- 使用浮点数和双精度数的非常小数字的数学
- 使用 Xcode 将双精度存储在数组C++中
- 为什么输出精度没有正确舍入?
- 在 C++ 中将双精度变量写入二进制文件
- 如何从字符串转换为双精度*