C#从int到double类型转换的问题
usingSystem;classProgram{staticvoidMain(string[]args){doubledb;intit=123;db=123.2432;...
using System;
class Program
{
static void Main(string[] args)
{
double db;
int it=123;
db = 123.2432;
Console.WriteLine("db={0},it={1}",db,it);
db = db - it;
Console.WriteLine("db=db-it:{0}",db);
Console.Read();
}
}
为什么123.2432-123运行后成了0.243200000000002,不应该是0.2432吗?
如果不行的话,我该用什么方法把整数部分减掉,也就是把123.2432变成0.2432,希望高手帮忙解答啊...
是不是所有的double类型值与int类型值相运算都会出现这种小“误差”,怎么能避免这种误差啊
double类型不是可以小数点后很多位吗,我只是用到了后面的4位,怎么还会出问题
希望大家说的详细点,本人是一初学者,在这方面实在迷惑 展开
class Program
{
static void Main(string[] args)
{
double db;
int it=123;
db = 123.2432;
Console.WriteLine("db={0},it={1}",db,it);
db = db - it;
Console.WriteLine("db=db-it:{0}",db);
Console.Read();
}
}
为什么123.2432-123运行后成了0.243200000000002,不应该是0.2432吗?
如果不行的话,我该用什么方法把整数部分减掉,也就是把123.2432变成0.2432,希望高手帮忙解答啊...
是不是所有的double类型值与int类型值相运算都会出现这种小“误差”,怎么能避免这种误差啊
double类型不是可以小数点后很多位吗,我只是用到了后面的4位,怎么还会出问题
希望大家说的详细点,本人是一初学者,在这方面实在迷惑 展开
3个回答
展开全部
Math.Round(你的数,小数点位数)
double就是不精确的类型,你可以用上面的方法使用四舍五入得到你需要的值
至少我试过C++,JAVA,C#都有这种误差
double型就是不精确的!
要避免就用四舍五入,结果和你要的是一样的
double就是不精确的类型,你可以用上面的方法使用四舍五入得到你需要的值
至少我试过C++,JAVA,C#都有这种误差
double型就是不精确的!
要避免就用四舍五入,结果和你要的是一样的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以把double的数值转换成成string,split('.')就可以得到小数部分!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询