C# 关于取余数运算%使用中的问题 代码如下static void Main(string[] args){double d1 = 1.2132;while (d1 % 1 = 0) {d1 = 10 * d1;}Console.WriteLine(d1);Console.ReadLine();}理论上输出值为12132实际上输出值为1.2132E+16我查看

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 03:30:54

C# 关于取余数运算%使用中的问题 代码如下static void Main(string[] args){double d1 = 1.2132;while (d1 % 1 = 0) {d1 = 10 * d1;}Console.WriteLine(d1);Console.ReadLine();}理论上输出值为12132实际上输出值为1.2132E+16我查看
C# 关于取余数运算%使用中的问题
代码如下
static void Main(string[] args)
{
double d1 = 1.2132;
while (d1 % 1 = 0)
{
d1 = 10 * d1;
}
Console.WriteLine(d1);
Console.ReadLine();
}
理论上输出值为12132
实际上输出值为1.2132E+16

我查看了一下详细的输出值发现其为12132000000000002
我就想问最后的2是怎么来的

C# 关于取余数运算%使用中的问题 代码如下static void Main(string[] args){double d1 = 1.2132;while (d1 % 1 = 0) {d1 = 10 * d1;}Console.WriteLine(d1);Console.ReadLine();}理论上输出值为12132实际上输出值为1.2132E+16我查看
因为计算机二进制的特性,小数运算是不精确的,你可以断点在d1 = 10 * d1看一下,乘以10后,d1的值是
12.132000000000001