相关疑难解决方法(0)

添加双打时精度会下降?

乡亲!我遇到了一个小问题:我正在使用三个double值进行简单的添加.结果的精度小于使用的值.

double minutes = 3;
minutes = minutes / (24.0*60.0);  // contains 0.00208333
double hours = 3;
hours = hours / 24.0; // contains 0.125
double days = 3; // contains 3 

double age = days + hours + minutes; // result is 3.12708 
Run Code Online (Sandbox Code Playgroud)

我发现无法避免这种行为.

c++ precision double addition

1
推荐指数
1
解决办法
5656
查看次数

如何使用双数据类型在c ++中从50.5e-12减去50e-12?

我有一个代码如下:

double a = 50e-12;
double b = 50.5e-12;
double c = b - a;
std::cout<<"value of a,b and c is : "<<a<<" " <<b<<" "<<c<<std::endl;
Run Code Online (Sandbox Code Playgroud)

现在我的输出是:a,b和c的值是:0.0000000001 0.0000000001 0.0000000000

我可以看到我的操作数已经四舍五入,因此我得到一个0作为输出,虽然我期望0.5.

有人可以帮我弄这个吗.?

c++ math precision

1
推荐指数
1
解决办法
122
查看次数

当它变得如此之小时,它会在数字上加倍吗?

我在Manjaro 64位,最新版本.惠普展馆g6,Codeblocks版本13.12 rev 9501(2013-12-25 18:25:45)gcc 5.2.0 Linux/unicode - 64位.

学生之间就为什么进行了讨论

  • sn = 1/n发散
  • sn = 1/n ^ 2收敛

所以决定写一个关于它的程序,只是为了向他们展示他们可以期待什么样的输出

#include <iostream>
#include <math.h>
#include <fstream>

using namespace std;

int main()
{
   long double sn =0, sn2=0; // sn2 is 1/n^2
   ofstream myfile;
   myfile.open("/home/Projects/c++/test/test.csv");

    for (double n =2; n<100000000;n++){
            sn += 1/n;
            sn2 += 1/pow(n,2);
            myfile << "For n = " << n << " Sn = " << sn << " and Sn2 = " << sn2 << endl;

    } …
Run Code Online (Sandbox Code Playgroud)

c++ gcc

0
推荐指数
1
解决办法
97
查看次数

如何在C ++中从字符串获取所有十进制数字

我正在尝试从c ++中的文本获取值(所有十进制数字)。但我有一个问题,我无法解决

#include "pch.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>

int main()
{
    std::ifstream infile("C:\\thefile.txt");
    float a, b;
    while (infile >> a >> b)
    {
        // process pair (a,b)
    }

    std::cout << a << " " << b;

}
Run Code Online (Sandbox Code Playgroud)

thefile.txt:

34.123456789 77.987654321
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,

a = 34.1235 
b = 77.9877
Run Code Online (Sandbox Code Playgroud)

但我想要

a = 34.123456789 
b = 77.987654321
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

编辑:我不想打印出a和b。我只希望他们得到确切的值。

c++ string decimal

-1
推荐指数
1
解决办法
65
查看次数

标签 统计

c++ ×4

precision ×2

addition ×1

decimal ×1

double ×1

gcc ×1

math ×1

string ×1