我想要实现的是让所有打印的数字以最大7数字显示.以下是我要打印的示例:
0.000000(相对于实际数字0.000000000029481 ......)
0.299180(相对于实际数字是0.299180291884922 ......)
通过使用options(scipen=99999)和,我已经成功使用了后面的数字options(digits=6).但是,前一个示例将始终打印大量的零后跟五个非零数字.如何阻止这种情况发生并达到我想要的效果?我也不想要科学记谱法.
我希望这适用于每个上下文中的所有打印数字.例如,如果我有一些矩阵,调用它A,我打印这个矩阵,我希望每个元素只有6-7位数.我希望每个上下文中的每个打印都能自动生成; 就像使用一样,options(digits=6)并options(scipen=99999)使其适用于每个上下文.
json.dumps 使用科学记数法输出小的浮点数或十进制值,这对于将此输出发送到的 json-rpc 应用程序是不可接受的。
>>> import json
>>> json.dumps({"x": 0.0000001})
'{"x": 1e-07}'
Run Code Online (Sandbox Code Playgroud)
我想要这个输出:
'{"x": 0.0000001}'
Run Code Online (Sandbox Code Playgroud)
最好避免引入额外的依赖项。
如何避免切割函数创建的间隔中存在科学记数法.
a<-seq(10000,50000, by=500 )
cut(a, breaks = seq(0,max(a)+300, by = 300))
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但它没有帮助.
options("scipen"=100, "digits"=4)
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) 我希望我的 webapi 使用驼峰命名法序列化 json。所以我将以下内容添加到 Global.asax 中。
HttpConfiguration config = GlobalConfiguration.Configuration;
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
config.Formatters.JsonFormatter.UseDataContractJsonSerializer = false;
Run Code Online (Sandbox Code Playgroud)
我注意到,因为我将 UseDataContractJsonSerializer 设置为 false,所以使用科学记数法对大小数进行序列化。我如何保留驼峰命名法并同时禁用科学记数法?
谢谢
我正在创建一个函数来返回十进制和整数位数,并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) 我想将浮点值格式化为n位有效数字,但从不使用科学记数法(即使它更短).
格式规范%f不涉及有效数字,%g有时会给我科学记数法(这对我来说不合适).
我想要表格中的价值观"123", "12.3", "1.23" or "0.000000123".
有没有一种优雅的方法来使用C++或boost来做到这一点?
我希望我的knitr代码生成的所有数字看起来都不像一个老式的计算器.
是否有任何选项可以获得最后一个数字(用10而不是e或E)?
options(scipen = ...)似乎没有那个选项.
我一直在搜索信息,我发现可以使用软件包siunitx直接在LaTex中完成,写下这样的每个数字\num {1e-10}
但是我想knitr自动为所有数字做过,包括表格中的数字.
PD:当我打印东西时,我该如何避免[1]?
PD2:也许是gsub的东西?
PD3:
我回到这个问题了.想象一下,我没有定义自己的表,但我从回归中得到它并使用xtable来生成它.
\documentclass{article}
\usepackage{siunitx}
\usepackage{booktabs}
\sisetup{ group-minimum-digits = {3}, group-separator = {,}, exponent-product = \cdot }
\begin{document}
<<r, results='asis'>>=
library(xtable)
data(tli)
fm2 <- lm(tlimth ~ sex*ethnicty, data = tli)
xxx <- xtable(fm2)
print(xxx, booktabs = TRUE)
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
但它效果不好.我应该使用哪些选项?
这是print +"booktabs = T"+我的函数beauty()的结果.
问候.
我不知道为什么它产生两个表而不是1.而且数字没有正确对齐.无论如何,我不想依赖我的beauty()函数但只使用suintx,我该怎么办?
我有一个名为accountnumber的列,其值在pandas数据帧中类似于4.11889000e + 11.我想压制科学记数法并将值转换为4118890000.我尝试了以下方法,但没有奏效.
df = pd.read_csv(data.csv)
pd.options.display.float_format = '{:,.3f}'.format
Run Code Online (Sandbox Code Playgroud)
请推荐.
我有一堆用科学计数法表示的数字,我想找到它们的指数。例如:
>>> find_exp(3.7e-13)
13
>>> find_exp(-7.2e-11)
11
Run Code Online (Sandbox Code Playgroud)
因此,我只需要他们的指数,忽略其他一切,包括符号。
我在 python 中寻找过这种方法,但类似的问题仅用于格式化目的。