Csharp/C#教程:C#简单划分问题分享


C#简单划分问题

我有这个:

double result = 60 / 23; 

在我的程序中,结果是2,但正确的是2,608695652173913。 哪里有问题?

你可以使用以下任何一个都给2.60869565217391

  double result = 60 / 23d; double result = 60d / 23; double result = 60d/ 23d; double result = 60.0 / 23.0; 

 double result = 60 / 23; //give 2 

说明:

如果任何一个数字是双倍 ,它将给出一个双倍


编辑:

文档

表达式的评估根据以下规则进行:

60和23是整数文字,因此您进行整数除法然后分配给double。 整数除法的结果是2。

尝试

 double result = 60.0 / 23.0; 

或者等效

 double result = 60d / 23d; 

d后缀通知编译器你打算写一个双字面。

它会工作

 double result = (double)60 / (double) 23; 

或者等效

 double result = (double)60 / 23; 

(双)60/23

暂时没有使用过C#,但是你要划分两个整数,据我所记得的那样,结果也是一个整数。

您可以通过添加字母“d”强制您的数字文字加倍,喜欢这样:

 double result = 60d / 23d; 

double result = 60.0 / 23.0;

最佳做法是正确装饰适当类型的数字。 这不仅可以避免您遇到的错误,还可以使代码更具可读性和可维护性。

 double x = 100d; single x = 100f; decimal x = 100m; 

将被除数和除数转换为double值,因此结果是double
double res = 60d / 23d;

添加到目前为止所说的内容… 60/23是对两个常量的操作。 编译器将结果识别为常量并预先计算答案。 由于操作是两个整数,编译器使用整数结果60/23的整数运算结果为2; 所以编译器有效创建以下代码:

 double result = 2; 

正如已经指出的那样,您需要告诉编译器不要使用整数,将一个或两个操作数更改为非整数将使编译器使用浮点常量。

上述就是C#学习教程:C#简单划分问题分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/953384.html

(0)
上一篇 2021年11月19日
下一篇 2021年11月19日

精彩推荐