标签: double

.NET中的decimal,float和double之间的区别?

是什么区别decimal,floatdouble在.NET?

什么时候会有人使用其中一种?

.net floating-point double decimal

2015
推荐指数
15
解决办法
88万
查看次数

十进制vs双! - 我应该使用哪一个?何时使用?

我一直看到人们在C#中使用双打.我知道我读到某个地方,双打有时会失去精确度.我的问题是什么时候应该使用双倍,何时应该使用小数类型?哪种类型适合货币计算?(即超过1亿美元)

c# precision double currency decimal

851
推荐指数
7
解决办法
42万
查看次数

将十进制转换为双倍?

我想使用轨迹栏来改变窗体的不透明度.

这是我的代码:

decimal trans = trackBar1.Value / 5000;
this.Opacity = trans;
Run Code Online (Sandbox Code Playgroud)

当我构建应用程序时,它会出现以下错误:

无法隐式转换decimaldouble.

我尝试使用trans,double但然后控件不起作用.这段代码在过去的VB.NET项目中运行良好.

c# floating-point double decimal type-conversion

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

为什么Math.round(0.49999999999999994)会返回1?

在以下程序中,您可以看到每个值略小于.5向下舍入,除了0.5.

for (int i = 10; i >= 0; i--) {
    long l = Double.doubleToLongBits(i + 0.5);
    double x;
    do {
        x = Double.longBitsToDouble(l);
        System.out.println(x + " rounded is " + Math.round(x));
        l--;
    } while (Math.round(x) > i);
}
Run Code Online (Sandbox Code Playgroud)

版画

10.5 rounded is 11
10.499999999999998 rounded is 10
9.5 rounded is 10
9.499999999999998 rounded is 9
8.5 rounded is 9
8.499999999999998 rounded is 8
7.5 rounded is 8
7.499999999999999 rounded is 7
6.5 rounded is 7 …
Run Code Online (Sandbox Code Playgroud)

java floating-point double rounding

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

如何很好地将浮动数字格式化为字符串而不必要的小数0?

64位双精度可以精确地表示整数+/- 2 53

鉴于这一事实,我选择将double类型用作所有类型的单一类型,因为我的最大整数是无符号32位.

但现在我必须打印这些伪整数,但问题是它们也与实际双打混合在一起.

那么如何在Java中很好地打印这些双打?

我试过了String.format("%f", value),这很接近,除了我得到很多小值的尾随零.

这是一个示例输出 %f

232.00000000
0.18000000000
1237875192.0
4.5800000000
0.00000000
1.23450000

我想要的是:

232
0.18
1237875192
4.58
0
1.2345

当然,我可以编写一个函数来修剪这些零,但由于字符串操作,这会导致很多性能损失.我可以用其他格式代码做得更好吗?

编辑

Tom E.和Jeremy S.的答案是不可接受的,因为它们都可以任意舍入到小数点后两位.请在回答之前先了解问题.

编辑2

请注意,String.format(format, args...)区域设置相关的(见下面的答案).

java string format floating-point double

472
推荐指数
15
解决办法
57万
查看次数

正确的printf格式说明符为double

doubleprintf中正确的格式说明符是什么?是它%f还是它%lf?我相信它%f,但我不确定.

代码示例

#include <stdio.h>

int main()
{
   double d = 1.4;
   printf("%lf", d); // Is this wrong?
}
Run Code Online (Sandbox Code Playgroud)

c floating-point double printf format-specifiers

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

将一个小数加倍到2位小数

如果值为200.3456,则应格式化为200.34.如果是200,那应该是200.00.

java double rounding

447
推荐指数
11
解决办法
113万
查看次数

在swift中将double值舍入为x个小数位数

谁能告诉我如何在Swift中将double值舍入到x个小数位?

我有:

var totalWorkTimeInHours = (totalWorkTime/60/60)
Run Code Online (Sandbox Code Playgroud)

totalWorkTime在第二个是NSTimeInterval(双).

totalWorkTimeInHours 会给我时间,但它给了我这么长的精确数字的时间,例如1.543240952039 ......

当我打印时,如何将其舍入到1.543 totalWorkTimeInHours

double nstimeinterval ios swift

359
推荐指数
25
解决办法
30万
查看次数

检查C++中的double(或float)是否为NaN

是否有isnan()函数?

PS.:我在MinGW(如果这有所不同).

我不得不用isnan()从此解决了<math.h>,这是不存在的<cmath>,这让我#include在第一荷兰国际集团.

c++ double nan

358
推荐指数
12
解决办法
35万
查看次数

你如何测试双重是否等于NaN?

我有一个Java的双倍,我想检查它是否是NaN.做这个的最好方式是什么?

java double equality nan

274
推荐指数
4
解决办法
17万
查看次数