标签: scientific-notation

科学记数法 - .NET中的错误?

是的,我知道很难相信 - .NET中的错误?但是在命令行应用程序中运行此代码:

decimal x;

x = decimal.Parse("3.E-2", NumberStyles.Float);
Console.WriteLine(x);

x = decimal.Parse("5.72e9", NumberStyles.Float);
Console.WriteLine(x);

x = decimal.Parse("3.E?2", NumberStyles.Float);
Console.WriteLine(x);

我在最后一次解析时遇到异常.他说:

System.FormatException : Input string was not in a correct format.

第一个和最后一个解析的值完全相同.在针对.NET 3.5和4编译的两台不同的x64机器上进行了测试.

知道发生了什么事吗?任何解决方法?

.net c# scientific-notation

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

如何使用科学记数法制作Perl的system()格式参数?

从我的Perl程序,我试图运行另一个用C语言编写的命令system.该命令需要几个参数:字符串,浮点数,两个整数,一对浮点数和另一个字符串.我正在运行这个

my $arg1="electron";
my $arg2=0.511;
# more definitions
system("./fermions $arg1 $arg2 $arg3 $arg4 " .
       "$arg5 $arg6 \"string\" > outfile.out");
Run Code Online (Sandbox Code Playgroud)

我需要改变$arg5几个不同的浮点值.我通过设置$arg5="1.0e5"然后在for循环中运行if语句来将其更改为字符串.我希望能够像花车那样做,并尝试

system("./fermions $arg1 $arg2 $arg3 $arg4 " .
       "%e $arg6 \"string\" >outfile.out",
       $arg5);
Run Code Online (Sandbox Code Playgroud)

但那没用.还有另一种选择,或者我的if语句选项是唯一的吗?

floating-point perl scientific-notation

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

我怎么知道String是否是科学记数法中的数字?

我知道如何检查String是否为数字.但是,如何检查String是否为数字且String是否为科学计数法?

这是我尝试过的:我编写了一个算法,只是检查字符串是否包含"E",但我不确定这是否足够.

我正在寻找像这样的方法实现:

public boolean isScientificNotation(String numberString) {

    //show me the implementation

}
Run Code Online (Sandbox Code Playgroud)

java scientific-notation

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

Coldfusion中PrecisionEvaluate的科学记数法

我在使用大数和长十进制数时遇到问题,正如其他人提到或使用PrecisionEvaluate解决了这样的问题,我无法通过这样的函数获得一致的结果.

此代码示例:

<cfset n = 0.000000000009>
<cfoutput>#precisionEvaluate(n)#</cfoutput> // this will produce "9E-12"
<cfoutput>#precisionEvaluate("n")#</cfoutput> // this will produce "0.000000000009"
Run Code Online (Sandbox Code Playgroud)

根据Adobe文档,不建议使用Quote(由于处理效率低)以及它应该产生相同的结果,但是上述代码不是这种情况.

结果不一致的进一步试验:

<cfset n = 0.000000000009>
<cfset r = 12567.8903>
<cfoutput>#precisionEvaluate(r * n)#</cfoutput> // this will produce "1.131110127E-7"
<cfoutput>#precisionEvaluate("r * n")#</cfoutput> // this will produce "1.131110127E-7", same as above
<cfoutput>#precisionEvaluate(r / n)#</cfoutput> // this will produce "1396432255555555.55555555555555555556"
<cfoutput>#precisionEvaluate("r / n")#</cfoutput> // this will produce "1396432255555555.55555555555555555556", same as above
Run Code Online (Sandbox Code Playgroud)

有没有人遇到类似案件的问题?解决不一致问题的实用解决方案是什么?我试过:使用val()函数没有解决,因为它仅限于短数,使用numberFormat()函数很难,因为我们必须传递小数位数才能正确格式化.

coldfusion numbers scientific-notation

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

如何在Clojure中切换科学记数法?

我正在尝试使用Clojure解决pythonchallenge问题:

(java.lang.Math/pow 2 38)
Run Code Online (Sandbox Code Playgroud)

我有

2.74877906944E11
Run Code Online (Sandbox Code Playgroud)

但是,我需要关闭这种科学记数法.我搜索了clojure文档,仍然不知道该怎么做.在Clojure中是否有通用的方法来切换开/关科学记数法?

谢谢.

scientific-notation clojure

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

将十六进制转换为 IEEE-754 单精度浮点二进制科学记数法

我试图将这些数字转换为二进制科学记数法,但我无法弄清楚这个过程。有人可以请解决这个问题的过程吗?

对于 IEEE 754 单精度浮点数,用二进制科学记数法书写的数字是多少,其十六进制表示如下?

0061 0000

我可以将其从十六进制转换为无符号二进制:

0000 0000 0110 0001 0000 0000 0000 0000

但我无法弄清楚如何使用二进制科学记数法正确表示这一点。提前致谢!

floating-point binary hex scientific-notation ieee-754

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

如何摆脱 cut() 生成的因子的科学记数法

如何摆脱factor变量的默认科学记数法?R当我在当前情况下有 3 个或更多数字时使用它。

我查看了其他答案(scipenotherformat),但它们似乎不适用于factor变量。

然后我在图例中使用这个因子变量,并且我需要整数或定点值。

options(scipen=999)
plot(0,0, type="l", lty=1, lwd=4);

var1 <- c(3334,341,36,341,456)
cut1 <- cut(var1, breaks=2)
cut1<-levels(cut1)
cut1<-gsub(","," - ",cut1)
cut1<-gsub("\\(","[",cut1)
#cut1 <- as.character(cut1);
#formatC(cut1, digits="10", format="f")
cut1
Run Code Online (Sandbox Code Playgroud)

[1]“[32.7 - 1.68e+03]”“[1.68e+03 - 3.34e+03]

我想要这样的东西:

[1]“[32.7 - 1680]”“[1680 - 3340]”

r scientific-notation

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

在Python中,Decimal('5E+1')可以简单地转换为Decimal('50')吗?

语境

我们在应用程序中向代理显示不带尾随零的百分比值(50%比现在更容易快速扫描50.000%),到目前为止,我们只是使用quantize强力标准化该值以删除尾随零。

今天早上我决定考虑使用它Decimal.normalize,但遇到了这个:

给定十进制值:

>>> value = Decimal('50.000')
Run Code Online (Sandbox Code Playgroud)

标准化该值:

>>> value = value.normalize()
Run Code Online (Sandbox Code Playgroud)

结果是:

>>> value
Decimal('5E+1')
Run Code Online (Sandbox Code Playgroud)

我理解值是相同的:

>>> Decimal('5E+1') == Decimal('50')
True
Run Code Online (Sandbox Code Playgroud)

但从非技术用户的角度来看,5E+1基本上是没有意义的。

问题

有办法转换Decimal('5E+1')Decimal('50')吗?

笔记

我不想做任何会改变 的值的事情Decimal(例如,完全删除小数位),因为该值可能是例如Decimal('33.333'). IOW,不要将我的50.000示例混淆为我们只处理整数。

python scientific-notation decimal exponent python-2.7

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

PySpark - 如何删除 csv 输出中的科学记数法

我有一个火花聚合,我想将结果输出到 csv,但我发现火花总是以科学记数法输出大量小数。我已经尝试过这个问题中提到的解决方案,但也没有奏效。

预期输出:

foo,avg(bar)
a,0.0000002
b,0.0000001
Run Code Online (Sandbox Code Playgroud)

实际输出:

foo,avg(bar)
a,2.0E-7
b,1.0E-7
Run Code Online (Sandbox Code Playgroud)

请参阅下面的示例:

foo,avg(bar)
a,0.0000002
b,0.0000001
Run Code Online (Sandbox Code Playgroud)

在 pyspark 外壳中:

foo,avg(bar)
a,2.0E-7
b,1.0E-7
Run Code Online (Sandbox Code Playgroud)

python scientific-notation apache-spark pyspark

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

如何防止/抑制 Decimal 使用科学记数法?

In [1]: from decimal import Decimal

In [2]: Decimal('0.00000100') * Decimal('0.95')
Out[2]: Decimal('9.500E-7')

In [3]: Decimal('9.500E-7').quantize(Decimal('0.00000000'))
Out[3]: Decimal('9.5E-7')
Run Code Online (Sandbox Code Playgroud)

如何抑制科学记数法并得到'0.00000095'

python scientific-notation decimal

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