我现在已经想了一会儿.当Matlab打印矩阵A时,例如,用
一个
它有时会出现在科学记数法中,例如A =
1.0e + 03*
A
Run Code Online (Sandbox Code Playgroud)
有谁知道如何打印正常的浮点数?我已经尝试过格式短,格式长,格式短e,格式长e,但它们都不起作用.有些人会切换格式化,以便科学记数法在单独的条目中,但实际上这些数字并不是那么荒谬,只是打印出来......
我们有一个StreamBuffer
课程,我们没有实施std::fixed
操作,我试图阻止数字出现在科学记数法中.用我的下面的代码,一些数字以科学记数显示.我们希望避免进行任何分配,这就是我们StreamBuffer
因为性能原因而实现类的原因.
以下是代码:
T value = 0;
template<typename U> void process(U& buf, DataOption holder) const {
if (holder == DataOption::TYPES) {
switch (type_) {
case teck::PROC_FLOAT:
buf << "{\"float\":" << value << "}";
break;
case teck::PROC_DOUBLE:
buf << "{\"double\":" << value << "}";
break;
default:
buf << "{\"" << type_ << "\":" << value << "}";
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是它被调用的方式:
void HolderProcess::dump(std::ostream& os, DataOption holder) const
{
process<std::ostream>(os, holder);
}
void HolderProcess::dump(StreamBuffer& buffer, DataOption holder) …
Run Code Online (Sandbox Code Playgroud) 我正在处理Lua中的时间戳,显示自Epoch以来的微秒数(例如"1247687475123456").
我真的希望能够将这个数字印在所有可怕的荣耀中,但Lua坚持用科学记谱法打印它.我已经搜索了有关打印格式化字符串的可用文档,但唯一可用的命令是"以科学记数法打印(%e /%E)"和"如果数字很长(%g),则以科学记数法自动打印" .似乎没有选项以正常形式打印数字.
我意识到我可以编写一个函数来获取原始数字,做一些除以10并在循环中打印数字但这似乎是一个不优雅的麻烦.当然有一些方法可以做到这种内置于语言中的方法吗?
Fortran程序生成的一些结果文件使用字母D
而不是E
例如报告双精度数字(科学记数法):
1.2345D+02
# instead of
1.2345E+02
Run Code Online (Sandbox Code Playgroud)
我需要使用Python处理大量的这些数据,我只是意识到它无法读取D
符号中的数字,例如:
>>> A = 1.0D+01
File "<stdin>", line 1
A = 1.0D+01
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我可以更改我的语言环境,让Python知道这D
意味着E
什么?我真的不想进行全球搜索和替换!
是否可以通过以下方式格式化科学记数法中的字符串:
在mantisa中设置固定小数位:0
double number = 123456.789
Run Code Online (Sandbox Code Playgroud)所以这个数字应该合成
1e+5
Run Code Online (Sandbox Code Playgroud)
我无法为mantisa设置0小数点:
cout.precision(0);
cout << scientific << number;
Run Code Online (Sandbox Code Playgroud)
结果:
1.234568e+005
Run Code Online (Sandbox Code Playgroud) 如果我使用科学记数法对我的代码中的数字进行硬编码(例如1e9
)该数字的类型是什么(int,long,float,double ..)?
当有效数或指数是浮点数时,它显然不能是整数,但在上述情况下是什么?
我想使用注视仪或类似工具在R的表中比较不同模型(lm,glm,plm,pglm)的结果。但是我找不到一种以科学计数法显示系数的方法。这是一个问题,因为截距相当大(大约一百万),而其他系数很小(大约e-7),这会导致大量无用的零,从而使表的读取变得更加困难。
我在这里发现了一个类似的问题:在texreg或stargazer R中将格式模型显示为科学。但是那里的结果需要重新缩放变量,并且由于我使用计数数据,所以我不想重新缩放它。
我很感谢任何建议。
我想用一个<input>
元素输入最多八个小数点的数字.但是,如果我有一个<input type="number" step="0.00000001">
并使用输入元素上的向上/向下箭头(在Chrome上;这里是jsfiddle),那么我得到小数字的科学记数法:
如果我输入5,然后按箭头键,则会抑制科学记数法:
有没有办法让浏览器显示1e-8
为0.000000001
?
此外,这里是否有任何危险,如果数量足够小,我会遇到浮点舍入错误?
<input type="number" step="0.00000001">
Run Code Online (Sandbox Code Playgroud)
如何获得以下格式(输入值始终小于 0.1):
> formatting(0.09112346)
0.91123E-01
> formatting(0.00112346)
0.11234E-02
Run Code Online (Sandbox Code Playgroud)
等等。
我正在寻找一些优雅的解决方案。我已经在使用下面给出的自定义函数:
def formatting(x, prec=5):
tup = x.as_tuple()
digits = list(tup.digits[:prec])
dec = ''.join(str(i) for i in digits)
exp = x.adjusted()
return '0.{dec}E{exp}'.format(dec=dec, exp=exp)
Run Code Online (Sandbox Code Playgroud)