编程论坛
注册
登录
编程论坛
→
C++教室
新人小白求助,int整数与小数乘积异常是什么原因啊?
sdlr2000
发布于 2022-11-05 13:46, 1079 次点击
学习过程中发现一个问题。
程序代码:
int
i =
566
;
Console.WriteLine(i*
0.85
);
Console.ReadLine();
为什么我的运行结果是481.09999999999997。
是哪里出错了,需要怎么改啊?
2 回复
#2
rjsp
2022-11-05 18:53
你这不是 C++
!当然,结果是对的
你需要了解一下什么叫“浮点数”(位数固定的科学计数法)
0.85 在计算机眼中是 0.84999999999999997779553950749686919152736663818359375
566*0.85 在计算机眼中是 481.09999999999996589394868351519107818603515625
481.09999999999996589394868351519107818603515625 的
the shortest round-trip
是 481.09999999999997
程序代码:
#include
<iostream>
#include
<format>
using
namespace
std;
int
main(
void
)
{
int
i =
566
;
cout
<< format(
"
{}
"
,i*
0.85
) << endl;
}
这才是 C++
#3
sdlr2000
2022-11-05 19:56
回复 2楼 rjsp
谢谢大佬,我看了一下,我看的是C#,
不过道理应该是一样的。谢谢!
1