请教c#中double类型转化为long类型的方法, 以及对double四舍五入的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教c#中double类型转化为long类型的方法, 以及对double四舍五入的方法相关的知识,希望对你有一定的参考价值。

RT,1.c#中double类型转化为long类型的方法

2.double四舍五入的方法
还有 long的和double的能比较大小么?
long a=1
double b=1.0
if (b>可以比较么

参考技术A 一楼说的完全正确,顺便补充一下

if (b>可以比较么 不可以。。

转换后可以比较,If(bool) 如果两个值都是 1 a>b 结果就是假
a==b 结果就是真

也就是说 它们对比的是值,不是长度,long 和double 是基本数据类型,C#自动分配了最大长度。。本回答被提问者采纳
参考技术B 1.convert();
2.void conv()

//对小数点后第一位进行判断


convert以后应该是能比较的
参考技术C 1.
double a= 1.25;
long b = Convert.ToLong(a);

2.使用Math.Round ()函数
如:
double c = Math.Round(a,1);//保留1 位小数

类型转化方法

1、隐式转化

隐式转化规则:由低到高依次是 int--->long---->long long--->float--->double

                         若运算中有char short 则一并转化为int

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     char a; short b; int c;
 6     long long d; float e; double f;
 7 
 8     printf("sizeof(a)=%d
",sizeof(a));//a占1个字节长度
 9     printf("sizeof(b)=%d
",sizeof(b));//b占2个字节长度
10     printf("sizeof(c)=%d
",sizeof(c));//c占4个字节长度
11 
12     printf("========================
");
13 
14     printf("sizeof(a+b)=%d
",sizeof(a+b));//a+b占4个字节长度
15     printf("sizeof(a+c)=%d
",sizeof(a+c));//a+c占4个字节长度
16     printf("sizeof(b+c)=%d
",sizeof(b+c));//b+c占4个字节长度
17 
18     printf("========================
");
19 
20     printf("sizeof(d)=%d
",sizeof(d));//long long型占8个字节长度
21     printf("sizeof(a+d)=%d
",sizeof(a+d));//char型和long long型一起运算,则提升到long long型,占8个字节长度
22 
23     printf("========================
");
24 
25     c=3; e=5.6;
26     printf("%f
",c+e);//int型和float型一起运算,则提升到float型,占4个字节,小数点后保留6位数
27     e=10.0;
28     printf("%f
",e/c);//int型和float型一起运算,则提升到float型,占4个字节,小数点后保留6位数
29 
30     printf("========================
");
31 
32     printf("sizeof(a)=%d
",sizeof(a));
33     printf("sizeof(f)=%d
",sizeof(f));//double型占8个字节
34 
35     printf("========================
");
36 
37     printf("sizeof(d+e)=%d
",sizeof(d+e));//long long型和float一起运算,则变成float型,占4个字节
38     printf("sizeof(a+f)=%d
",sizeof(a+f));//char型和double型一起运算,则提升到double型,占8个字节
39 
40 
41     return 0;
42 }

打印结果:

技术分享图片技术分享图片?

2、强制转化

格式:( 类型)待转表达式

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int a=3; int b=10;
 6     float c=b/a;
 7     printf("%f
",c);//结果是3.000000
 8 
 9     //若我们想得到3.333333的结果的时候
10 
11     float d=(float)b/a;//将b从int型转化到float型,则运算结果以float型的小数表示
12     printf("%f
",d);
13 
14     return 0;
15 }

打印结果:

技术分享图片技术分享图片?

3、浮点数跟0值比较

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     double tmp=0.0;
 6     if(tmp>-0.000001 && tmp<+0.000001)//与-0.000001和+0.000001比较大小
 7     {
 8         printf("tep==0
");
 9     }
10     else
11         printf("tep!=0
");
12 
13     return 0;
14 }

打印结果:

技术分享图片技术分享图片?

以上是关于请教c#中double类型转化为long类型的方法, 以及对double四舍五入的方法的主要内容,如果未能解决你的问题,请参考以下文章

C#如何把INT类型转换为方法参数对应的枚举类型?怎么强制转换?

在C#中如何将int类型强制转换为double类型

c#中如何把string类型转换为double类型?

java中将一个double类型的数强制转换为long 型是四舍五入吗?

java中将一个double类型的数强制转换为long 型是四舍五入吗?

如何避免 Gson 将 JsonString 中的 int long 等数字转化为带小数的 Double