标签: double

在Java中将String转换为double

我怎么能转换String,如"12.34"一个double在Java中?

java string double casting type-conversion

273
推荐指数
9
解决办法
126万
查看次数

Double vs. BigDecimal?

我必须计算一些浮点变量,我的同事建议我使用BigDecimal而不是double因为它会更精确.但我想知道它是什么以及如何最大限度地利用它BigDecimal

java floating-point double bigdecimal

272
推荐指数
6
解决办法
28万
查看次数

什么时候应该使用double而不是decimal?

我可以说使用double(或float)代替以下三个优点decimal:

  1. 使用较少的内存.
  2. 更快,因为处理器本身支持浮点数学运算.
  3. 可以代表更大范围的数字.

但这些优势似乎只适用于计算密集型操作,例如建模软件中的操作.当然,在需要精确度时,不应使用双精度数,例如财务计算.那么有没有任何实际的理由选择double(或float)而不是decimal"正常"的应用程序?

编辑补充:感谢所有伟大的回应,我向他们学习.

还有一个问题:一些人认为双打可以更精确地代表实数.宣布时,我认为他们通常也会更准确地代表他们.但是,当执行浮点运算时,准确度是否会降低(有时是显着的)是真实的说法吗?

c# floating-point double types decimal

257
推荐指数
5
解决办法
5万
查看次数

239
推荐指数
7
解决办法
35万
查看次数

如何将带小数点的字符串解析为double?

我想解析"3.5"一个双字符串的字符串.然而,

double.Parse("3.5") 
Run Code Online (Sandbox Code Playgroud)

收益35和

double.Parse("3.5", System.Globalization.NumberStyles.AllowDecimalPoint) 
Run Code Online (Sandbox Code Playgroud)

抛出一个FormatException.

现在我的计算机的语言环境设置为德语,其中逗号用作小数分隔符.它可能需要做些什么并double.Parse()期待"3,5"作为输入,但我不确定.

如何解析包含十进制数的字符串,该十进制数可能是也可能不是我当前语言环境中指定的格式?

c# string double parsing

217
推荐指数
6
解决办法
30万
查看次数

Java中的Float和double数据类型

浮点数据类型是单精度32位IEEE 754浮点数,双数据类型是双精度64位IEEE 754浮点数.

这是什么意思?什么时候应该使用float而不是double,反之亦然?

java floating-point double ieee-754

212
推荐指数
4
解决办法
30万
查看次数

使用epsilon将double比较为零

今天,我正在查看一些C++代码(由其他人编写)并找到了这一部分:

double someValue = ...
if (someValue <  std::numeric_limits<double>::epsilon() && 
    someValue > -std::numeric_limits<double>::epsilon()) {
  someValue = 0.0;
}
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚这是否有意义.

文档epsilon()说:

该函数返回1和大于1的最小值之间的差值,可以表示[乘双].

这是否也适用于0,即epsilon()最大值是否大于0?或者有没有之间的数字0,并0 + epsilon可以由代表double

如果没有,那么比较不等于someValue == 0.0

c++ double

209
推荐指数
4
解决办法
5万
查看次数

可以存储在double中的最大整数

什么是最大的"非浮动"整数,可以存储在IEEE 754 double类型而不会丢失精度?

floating-point double types ieee-754

208
推荐指数
7
解决办法
16万
查看次数

如何使用Java在没有科学记数法的情况下打印double值?

我想在没有指数形式的Java中打印double值.

double dexp = 12345678;
System.out.println("dexp: "+dexp);
Run Code Online (Sandbox Code Playgroud)

它显示了这个E符号:1.2345678E7.

我希望它像这样打印: 12345678

防止这种情况的最佳方法是什么?

java double

208
推荐指数
8
解决办法
28万
查看次数

为什么通过字符串进行的往返转换对双重不安全?

最近我不得不将双序列化为文本,然后将其取回.该值似乎不相等:

double d1 = 0.84551240822557006;
string s = d1.ToString("R");
double d2 = double.Parse(s);
bool s1 = d1 == d2;
// -> s1 is False
Run Code Online (Sandbox Code Playgroud)

但根据MSDN:标准数字格式字符串,"R"选项应该保证往返安全.

往返("R")格式说明符用于确保转换为字符串的数值将被解析回相同的数值

为什么会这样?

c# precision double tostring

184
推荐指数
2
解决办法
9125
查看次数