C# - 值为0.5的数据类型

Fun*_*nky 2 c# types

我有一个计算例如2/4 = 0.5,除了我找不到将存储此值的数据类型!每次我进行计算时都会显示0.

有人有什么建议吗?

Jon*_*eet 12

任何一种doubledecimal将会正常工作.

但是,如果你只是写:

// Wrong
double x = 2 / 4;
Run Code Online (Sandbox Code Playgroud)

然后它仍将使用整数除法 - 因为除法运算符的两个操作数都是类型int.

您可以将其中一个或两个操作数强制转换为double,或者将double literal用于其中一个或两个:

// Any of these...
double x = (double) 2 / 4;
double x = 2 / (double) 4;
double x = (double) 2 / (double) 4;
double x = 2.0 / 4;
double x = 2 / 4.0;
double x = 2.0 / 4.0;
double x = 2d / 4;
double x = 2 / 4d;
double x = 2d / 4d;
Run Code Online (Sandbox Code Playgroud)

注意,这两个doubledecimal浮点类型.它们不代表任意有理数(分数).例如,两者都不能准确地代表1/3.如果您需要一个有理数字类型,您必须自己编写或寻找第三方实现.