float mX;
mX = (X - 32) / 17;//X 为int型用计算器算mX经常是除不尽的如:mX=2.7058823529411764705882352941176,但是程序中总是自动舍去了小数部分结果mX=2.0;如果把mX定义为double,也不行还是舍去小数部分。如果用 Math.Round((X - 32)/17,5),则会提示“调用不明确”估计是应为(X - 32) / 17部分不一定是小数。请问在c#里怎么才能使mX 的结果为小数,并且保留5位有效数字??
mX = (X - 32) / 17;//X 为int型用计算器算mX经常是除不尽的如:mX=2.7058823529411764705882352941176,但是程序中总是自动舍去了小数部分结果mX=2.0;如果把mX定义为double,也不行还是舍去小数部分。如果用 Math.Round((X - 32)/17,5),则会提示“调用不明确”估计是应为(X - 32) / 17部分不一定是小数。请问在c#里怎么才能使mX 的结果为小数,并且保留5位有效数字??
解决方案 »
- ClickOnce 不支持请求执行级别requireAdministrator
- IEnumerable<InnerBoundary> 和 List<InnerBoundary> 有什么区别
- 如何获取网络图片数据?
- 如何将pictureBox.Image控件功能生成dll动态库?
- 关于webbrowser与webclient的比较
- 在C#中。如何才能够使有大量重复的计算,能够使用SSE等的CPU指令集提供程序的运行速度?
- 急需ASP.NET开发人员(深圳),顶者有分
- 如何用c#做一个倒计时?
- 秋风,...白雪有些无奈的我......谁能告诉该怎么做???
- js调用后台方法
- 奋斗了两个月,终于找到了一个理想的工作,特来散分!!!
- Interface(接口)如何实现功能的啊
============================
不行,还是自动舍去小数了!
MidpointRounding.ToEven 只截取,不四舍五入
result.ToString("#,##0.00000")//输出: 1.00000
mX = (X - 32) / 17;//X 为int型 改为:
int cc = (X - 32);
string bb =0;
mX = cc / 17;//X 为int型
bb=(cc%17).Tostring();
if(bb.length>7)
{
(bb.SubString(0,7)+mX.ToString();
}
else
{
for(int i=0;i<7-bb.length;i++)
{
bb+="0";
}
bb+mX.Tostring();
}
double y;
y = (x - 32) / 17.0;
mX = (float)Math.Round(y, 5);