| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 930 人关注过本帖
标题:新人小白求助,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
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册: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
快速回复:新人小白求助,int整数与小数乘积异常是什么原因啊?
数据加载中...
 
   



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

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