从Access 2007导出CSV时,它会自动将小数转换为科学计数法.
不幸的是,接收它们的工具将这些字段视为文本,并按原样显示它们.
导出的值来自针对某些Excel链接表运行的查询,并且它们在查询视图中完美显示.
有没有办法禁用自动转换为科学记数法.
即如果它在查询中显示为0.007,它将在输出csv而不是7E3中显示为0.007?
注意:我为此限制使用Excel和Access.尽管我想切换到SQL Server,如果我把它放在她的工作笔记本电脑上,我的妻子会不高兴!
我正在尝试在屏幕上打印一个ndarray.但是python总是用科学记数法表示,我不喜欢.对于标量,我们可以使用
>>> print '%2.4f' %(7.47212470e-01)
0.7472
Run Code Online (Sandbox Code Playgroud)
但是如何为这样的numpy.ndarray做到这一点:
[[ 7.47212470e-01 3.71730070e-01 1.16736538e-01 1.22172891e-02]
[ 2.79279640e+00 1.31147152e+00 7.43946656e-02 3.08162255e-02]
[ 6.93657970e+00 3.14008688e+00 1.02851599e-01 3.96611266e-02]
[ 8.49295040e+00 3.94730094e+00 8.99398479e-02 7.60969188e-02]
[ 2.01849250e+01 8.62584092e+00 8.75722302e-02 6.17109672e-02]
[ 2.22570710e+01 1.00291292e+01 1.20918359e-01 1.07250131e-01]
[ 2.82496660e+01 1.27882133e+01 1.08438172e-01 1.58723714e-01]
[ 5.89170270e+01 2.55268510e+01 1.31990966e-01 1.61599514e-01]]
Run Code Online (Sandbox Code Playgroud)
方法.astype(float)不会更改结果,而.round(4)会返回:
[[ 7.47200000e-01 3.71700000e-01 1.16700000e-01 1.22000000e-02]
[ 2.79280000e+00 1.31150000e+00 7.44000000e-02 3.08000000e-02]
[ 6.93660000e+00 3.14010000e+00 1.02900000e-01 3.97000000e-02]
[ 8.49300000e+00 3.94730000e+00 8.99000000e-02 7.61000000e-02]
[ 2.01849000e+01 8.62580000e+00 8.76000000e-02 6.17000000e-02]
[ 2.22571000e+01 1.00291000e+01 1.20900000e-01 1.07300000e-01]
[ 2.82497000e+01 …Run Code Online (Sandbox Code Playgroud) 我想在MySql中存储科学记数字.
我已将它们保存到具有数据类型的字段中decimal.问题是它以正常的表示法存储它(至少是我在MAMP附带的Web控制台中查看数字时的情况),因此你需要为字段分配更多的字节......我认为这将导致拥有一个非常大的数据库.
无论如何都存储科学记数法(更少的信息单位),但仍然能够进行数值计算,例如<和>(最后一条评论的上下文是,如果你只是需要显示你可以存储它的值作为文本类型,但这不适合我).
可能重复:
在图形刻度中抑制指数格式
对于我的图中的每个刻度标记,Matlab输出我的轴标记为5.777 x10 ^ 6 ...是否可以让matlab输出实际的十进制数而不是科学记数,因此刻度标记实际上是不同的值而不是全部5.777?由于轴上缺乏精确度,目前我还不知道这些图在太空中的位置.
我不太明白以下两个印刷语句之间的区别在于我试图用科学记数法表达的数字.我认为底部应该允许2个空格用于打印结果,并将小数位移4次,但我得到的结果并不能证实这种理解.就第一个而言,4e意味着什么?
>>> print('{:.4e}'.format(3454356.7))
3.4544e+06
>>> print('{:2.4}'.format(3454356.7))
3.454e+06
Run Code Online (Sandbox Code Playgroud)
所有帮助非常感谢.
我认为这将是一个简单的,但我无法在任何地方找到任何相关的信息.让我们说用户输入123456.我想用科学记数法显示它.所以这将是1.23456*10 ^ 5.我认为ruby或rails会有一个辅助方法,比如scientific_notation(123456),但我找不到任何东西.这可能吗?
更进一步,如果用户输入科学记数法,那么处理数字呢?例如,他们输入1.23456x10 ^ 6 - rails解析它并将123456存储在数据库中.
我意识到第二部分是远景.
我想从最小到最高排序一系列数字(科学记数法).
这是我试过的(徒劳):
require 'bigdecimal'
s = ['1.8e-101','1.3e-116', '0', '1.5e-5']
s.sort { |n| BigDecimal.new(n) }.reverse
# Results Obtained
# => [ "1.3e-116", "1.8e-101", "0", "1.5e-5" ]
# Expected Results
# => [ "0", "1.3e-116", "1.8e-101", "1.5e-5"]
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写内核(4.8.1)模块,如果我使用的话
if (hrtimer_cancel(&hr_timer) == 1) {
u64 remaining = ktime_to_ns(hrtimer_get_remaining(&hr_timer));
printk("(%llu ns; %llu us)\n", remaining,
(unsigned long long) (remaining/1e3));
}
Run Code Online (Sandbox Code Playgroud)
它引发了这个错误
error: SSE register return with SSE disabled
printk("\t\t(%llu ns; %llu us)\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
remaining,
~~~~~~~~~~
(unsigned long long) (remaining/1e3));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
如果我使用
if (hrtimer_cancel(&hr_timer) == 1) {
u64 remaining = ktime_to_ns(hrtimer_get_remaining(&hr_timer));
printk("(%llu ns; %llu us)\n", remaining,
(unsigned long long) (remaining/1000));
}
Run Code Online (Sandbox Code Playgroud)
它没有问题.
那你为什么不能在内核中使用科学记数法呢?我的意思是,我认为是更容易和更可读的使用1e3; 1e6; 1e9,而不是1000; 1000000; 1000000000.
只是可移植性/健壮性问题?
或类似的东西(在这种情况下)
你需要ns吗?使用
ktime_to_ns
你需要我们吗?使用ktime_to_us
你需要ms?使用ktime_to_ms
PS我试过一个简单的.c程序,它没有问题
#include …Run Code Online (Sandbox Code Playgroud) 我在Yii2中有一个项目,它使用PHPExcel库来读取Excel文件.我有一个Transaction Id列,其中包含General format单元格中的数据.我的Excel文件的屏幕截图:

你可以看到上面,如果我输入15个字符的数字并在其中放入两个点.它将显示为数字.
First Ex:输入=> 800.003.151476962在单元格中显示为
并且在Formula Bar中显示为

但如果在内部输入15个没有点数的字符,它将显示为科学记数法/指数.
第二个例子:输入=> 800003151476925在单元格中显示为
=> 科学记数法/指数数据格式,在公式栏中显示为

当我尝试读取PHP中的数据时,我的PHP会将Second Ex数据读作科学记数法/指数格式而不是字符串/数字/小数.
如何在我的PHP 中将第二次Ex数据作为800003151476925(无论是字符串,数字还是十进制格式)而不是8.00003E + 14?
谢谢 :)
注:其实我已阅读并尝试在建议转换指数在PHP中的一个整数,转换指数数小数在PHP,转换指数数在PHP为十进制,但我什么也没得到.
System.out.println(2e+5);
Run Code Online (Sandbox Code Playgroud)
以上线的输出是,
200000.0
Run Code Online (Sandbox Code Playgroud)
虽然低于线路,
System.out.println(2e-5);
Run Code Online (Sandbox Code Playgroud)
输出是,
2.0e-5
Run Code Online (Sandbox Code Playgroud)
为什么没有2e-5通过-10^5给出输出来解决,
0.00002
Run Code Online (Sandbox Code Playgroud)