C# 除法保留有效位数。
如题,C#中inti=10;intj=3;floatm=i/3;而我想得到的结果是m=3.3或是3.33或是3.333,就是取有效位数。...
如题,C#中
int i = 10;
int j = 3;
float m = i/3;
而我想得到的结果是m=3.3或是3.33或是3.333,就是取有效位数。 展开
int i = 10;
int j = 3;
float m = i/3;
而我想得到的结果是m=3.3或是3.33或是3.333,就是取有效位数。 展开
4个回答
展开全部
ROUND()是C#中math的一个成员函数.System.Math.Round(),这个函数有四种用法,最长用的是对小数点位数的舍入.但这和现实生活中的“四舍五入”有一定区别,也有别JAVA中Math.Round(),跟sql中的Math.Round()方法有别.
C#中Math.round()()采用的是所谓“四舍六入五成双”的银行家舍入法---要舍得位如果是5则舍入后末位要求是偶数,要舍得位如果不是五 则按四舍五入处理.
如:
Math.Round(1.2600,2);结果是1.26
Math.Round(1.2460,2);结果是1.25
Math.Round(1.2550,2);结果是1.25
Math.Round(1.2551,2);结果是1.26
Math.Round(1.2560,2);结果是1.26
C#中Math.round()()采用的是所谓“四舍六入五成双”的银行家舍入法---要舍得位如果是5则舍入后末位要求是偶数,要舍得位如果不是五 则按四舍五入处理.
如:
Math.Round(1.2600,2);结果是1.26
Math.Round(1.2460,2);结果是1.25
Math.Round(1.2550,2);结果是1.25
Math.Round(1.2551,2);结果是1.26
Math.Round(1.2560,2);结果是1.26
展开全部
首先,你的代码有问题
float m = i/3;这句的结果无论如何都是3
应该是float m = (float)i/3;
然后可以用Math.Round()方法来指定小数位数
比如Math.Round(m, 3);返回的就是3.333
float m = i/3;这句的结果无论如何都是3
应该是float m = (float)i/3;
然后可以用Math.Round()方法来指定小数位数
比如Math.Round(m, 3);返回的就是3.333
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上正解!·~你除法右边得的值没有转换为float。。所以你得到的是整数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也遇到这问题了,刚想办法解决,下边是调研的方法:
方法1:float m=i/3修改为float m=i/3.0f;
方法2:float m=i/3修改为double m=i/3.0;
我试了下都可以。
方法1:float m=i/3修改为float m=i/3.0f;
方法2:float m=i/3修改为double m=i/3.0;
我试了下都可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询