标题:新人小白求助,int整数与小数乘积异常是什么原因啊?
只看楼主
sdlr2000
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-11-5
结帖率:0
已结贴  问题点数:20 回复次数:2 
新人小白求助,int整数与小数乘积异常是什么原因啊?
学习过程中发现一个问题。
程序代码:
int i = 566;
Console.WriteLine(i*0.85);
Console.ReadLine();

为什么我的运行结果是481.09999999999997。
是哪里出错了,需要怎么改啊?
搜索更多相关主题的帖子: 小数 int 异常 原因 整数 
2022-11-05 13:46
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
你这不是 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++
2022-11-05 18:53
sdlr2000
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-11-5
得分:0 
回复 2楼 rjsp
谢谢大佬,我看了一下,我看的是C#,
不过道理应该是一样的。谢谢!
2022-11-05 19:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510553-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054218 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved