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 …
我有一些项目要分区为多个桶,这样每个桶比最后一个桶大一些.
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包,但是我的速度很快.
我正在处理Lua中的时间戳,显示自Epoch以来的微秒数(例如"1247687475123456").
我真的希望能够将这个数字印在所有可怕的荣耀中,但Lua坚持用科学记谱法打印它.我已经搜索了有关打印格式化字符串的可用文档,但唯一可用的命令是"以科学记数法打印(%e /%E)"和"如果数字很长(%g),则以科学记数法自动打印" .似乎没有选项以正常形式打印数字.
我意识到我可以编写一个函数来获取原始数字,做一些除以10并在循环中打印数字但这似乎是一个不优雅的麻烦.当然有一些方法可以做到这种内置于语言中的方法吗?
我正在创建一个函数来返回十进制和整数位数,并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) 计算结果后得到1e-1如何将结果从指数转换为点符号,即0.1?为什么它会自动转换为指数表示法!!
要将双精度转换为不带科学记数法的字符串,建议的方法是
std::ostringstream strStream;
strStream << std::fixed;
strStream << value;
std::string str = strStream.str();
Run Code Online (Sandbox Code Playgroud)
如在 将 << 与 double 一起使用时防止 ostream 中的科学记数法&如何将 double 转换为 C++ 中的字符串?
我想将双精度转换为字符串,没有任何分隔符和点/句点作为小数点,即忽略区域设置。
从ostringstream、std::fixed和showpoint的描述中,我无法确定
如果按照当前区域设置,那么如何覆盖,以便它始终以点/句号作为小数点并且没有分组?
我刚刚在c ++中遇到过这个问题
std::cout << -5.0000004768371582 + 5 << "\n";
Run Code Online (Sandbox Code Playgroud)
这将打印-4.76837e-007,即使你认为它会打印像0.000000476 ...我知道浮点数并不总是正确的,但我以前从未见过这个.我也看到过这与其他数字有关.
为什么是这样.我怎么能解决它?