相关疑难解决方法(0)

如何使C++ cout不使用科学记数法

double x = 1500;
for(int k = 0; k<10 ; k++){
    double t = 0;
    for(int i=0; i<12; i++){
        t += x * 0.0675;
        x += x * 0.0675;
    }
    cout<<"Bas ana: "<<x<<"\tSon faiz: "<<t<<"\tSon ana: "<<x+t<<endl;      
}
Run Code Online (Sandbox Code Playgroud)

这个输出

Bas ana:3284.78 Son faiz:1784.78 Son ana:5069.55

Bas ana:7193.17 Son faiz:3908.4 Son ana:11101.6

Bas ana:15752 Son faiz:8558.8 Son ana:24310.8

Bas ana:34494.5 Son faiz:18742.5 Son ana:53237

Bas ana:75537.8 Son faiz:41043.3 Son ana:116581

Bas ana:165417 Son faiz:89878.7 Son ana:255295

Bas ana:362238 Son faiz:196821 Son …

c++ double cout scientific-notation ostream

59
推荐指数
4
解决办法
7万
查看次数

如何让haskell输出数字而不是科学记数法?

我有一些项目要分区为多个桶,这样每个桶比最后一个桶大一些.

items = 500
chunks = 5
increment = 0.20


{- find the proportions  -}
sizes = take chunks (iterate (+increment) 1)    
base = sum sizes / items    
buckets = map (base *) sizes

main = print buckets
Run Code Online (Sandbox Code Playgroud)

我确信有一种数学上更优雅的方式来做到这一点,但这不是我的问题.最后一步始终以科学记数法打印出来.

如何获得纯十进制输出?我看过Numeric包,但是我的速度很快.

formatting haskell scientific-notation

16
推荐指数
2
解决办法
3660
查看次数

如何在不使用科学记数法的情况下在Lua中打印大量数字?

我正在处理Lua中的时间戳,显示自Epoch以来的微秒数(例如"1247687475123456").

真的希望能够将这个数字印在所有可怕的荣耀中,但Lua坚持用科学记谱法打印它.我已经搜索了有关打印格式化字符串的可用文档,但唯一可用的命令是"以科学记数法打印(%e /%E)"和"如果数字很长(%g),则以科学记数法自动打印" .似乎没有选项以正常形式打印数字.

我意识到我可以编写一个函数来获取原始数字,做一些除以10并在循环中打印数字但这似乎是一个不优雅的麻烦.当然有一些方法可以做到这种内置于语言中的方法吗?

lua scientific-notation

11
推荐指数
2
解决办法
1万
查看次数

如何在使用字符串流时停止双精度转换为科学记数法

我正在创建一个函数来返回十进制和整数位数,并typename使用sstreams 将插入的数字转换为字符串.

但是,转换为字符串时的数字用科学记数法表示,这对于计算正常数字中的数字位数没有用.如何在下面的函数中阻止这种情况发生?

enum { DECIMALS = 10, WHOLE_NUMBS = 20, ALL = 30 };

template < typename T > int Numbs_Digits(T numb, int scope)
{
    stringstream ss(stringstream::in | stringstream::out);
    stringstream ss2(stringstream::in | stringstream::out);
    unsigned long int length = 0;
    unsigned long int numb_wholes;

    ss2 << (int) numb;
    numb_wholes = ss2.str().length();
    ss2.flush();
    bool all = false;

    switch (scope) {
    case ALL:
        all = true;

    case DECIMALS:
        ss << numb;
        length += ss.str().length() - (numb_wholes + 1); …
Run Code Online (Sandbox Code Playgroud)

c++ scientific-notation stringstream

9
推荐指数
2
解决办法
2万
查看次数

如何将指数形式的浮点值转换为点符号?

可能重复:
使用<< with double时防止ostream中的科学记数法

计算结果后得到1e-1如何将结果从指数转换为点符号,即0.1?为什么它会自动转换为指数表示法!!

c++ oracle floating-point

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

ostringstream 插入器是否使用当前区域设置?

要将双精度转换为不带科学记数法的字符串,建议的方法是

std::ostringstream strStream;
strStream << std::fixed;
strStream << value;
std::string str = strStream.str();
Run Code Online (Sandbox Code Playgroud)

如在 将 << 与 double 一起使用时防止 ostream 中的科学记数法&如何将 double 转换为 C++ 中的字符串?

我想将双精度转换为字符串,没有任何分隔符和点/句点作为小数点,即忽略区域设置。

从ostringstreamstd::fixedshowpoint的描述中,我无法确定

  1. 小数点是否位于当前语言环境?和
  2. str() 返回的字符串中是否会根据语言环境存在其他分隔符(例如千位分组)?

如果按照当前区域设置,那么如何覆盖,以便它始终以点/句号作为小数点并且没有分组?

c++ string double iostream

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

C++浮点数是远离的

我刚刚在c ++中遇到过这个问题

std::cout << -5.0000004768371582 + 5 << "\n";
Run Code Online (Sandbox Code Playgroud)

这将打印-4.76837e-007,即使你认为它会打印像0.000000476 ...我知道浮点数并不总是正确的,但我以前从未见过这个.我也看到过这与其他数字有关.

为什么是这样.我怎么能解决它?

c++ floating-point precision

-4
推荐指数
2
解决办法
128
查看次数