C#中计算double a=1/1000;应该结果是0.001,但为什么会变成0呢?好像会把后面的

C#中计算doublea=1/1000;应该结果是0.001,但为什么会变成0呢?好像会把后面的舍掉,有什么办法让它保持原样呢?... C#中计算double a=1/1000;应该结果是0.001,但为什么会变成0呢?好像会把后面的舍掉,有什么办法让它保持原样呢? 展开
 我来答
xmandlp
2014-01-28 · TA获得超过484个赞
知道小有建树答主
回答量:498
采纳率:0%
帮助的人:303万
展开全部
C# 中 如果相除的两个数都是整数(int 型) 那么除的结果就是只取整数部分 所以你才会取到0 如果你要取精确的值 那么相除的两个数中其中一个必须不为纯整数
double a=1/1000 要么变成double a=1.0/1000 要么变成double a=1/1000.0 这样才会取到具体结果
仙戈雅3n
推荐于2018-04-11 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:882万
展开全部
using System;
namespace ConsoleApplication1{
    class Program{
        static void Main(string[] args){
            double a = (double)1 / (double)1000; // 将被除数和除数强制转换double
            Console.WriteLine("a={0}",a);  // 将输出a等于0.001
            Console.ReadKey(true);
        }
    }
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鬼剧
2018-08-23 · TA获得超过1016个赞
知道小有建树答主
回答量:197
采纳率:100%
帮助的人:35.8万
展开全部
两个整形运行不会提升到双精度..即使你结果要求双精度,所以只能1/1000.0 1.0/1000 1/1000*1.0 这样来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abc45123000
2014-01-28 · TA获得超过327个赞
知道小有建树答主
回答量:363
采纳率:50%
帮助的人:171万
展开全部
2个int型相除结果还是int型
分子或分母任意一个改为doubel型就可以了 比如把1改为1.0
或者你在1后面加个f 告诉计算机是doubel型
追问
double a=1.6
double b=a/1000
然后要b应该等于0.001,但是这样写等于0,后面的没有了!
追答
double b=Convert.ToDouble(1)/Convert.ToDouble(1000)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2014-01-28 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7710万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式