首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在距离公式中舍入到小数点3位

问在距离公式中舍入到小数点3位
EN

Stack Overflow用户
提问于 2016-05-28 13:40:48
回答 2查看 337关注 0票数 0

我有一个双倍,我需要四舍五入到小数点3位。我不知道如何准确地实现Math.Round。到目前为止,这就是我所拥有的:

代码语言:javascript
复制
double distance= Math.Sqrt(deltax + deltay);
Math.Round((decimal)distance, 3);
Console.WriteLine("Distance :" + distance);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-28 13:46:21

使用Math.Round的返回值(Uwe Keim已经注意到)并删除十进制转换。

代码语言:javascript
复制
double distance = Math.Sqrt(10.438295 + 10.4384534295);
Console.WriteLine("Distance :" + Math.Round(distance, 3));
票数 1
EN

Stack Overflow用户

发布于 2016-05-28 13:49:02

不要使用Math.Round()包围它,在输出字符串格式化程序中包围它:

代码语言:javascript
复制
double distance = Math.Sqrt(deltax + deltay);
Console.WriteLine("Distance :{0:f3}", distance);

您几乎从不希望使用Math.Round()来格式化输出。

原因是,如果要将输出格式化为小数点3位,通常需要显示尾随零以指示所显示的DPs数。

例如,给定

代码语言:javascript
复制
double x = 0.1;

然后

代码语言:javascript
复制
double rounded = Math.Round(x, 3);
Console.WriteLine(rounded);

将显示0.1,而

代码语言:javascript
复制
Console.WriteLine("{0:f3}", x);

将显示0.100,它会立即告诉用户,它被舍入为3 dps。

如果要从输出中删除尾随零,则可以使用Math.Round(),但我要使用###字符串格式化程序:

代码语言:javascript
复制
Console.WriteLine("{0:0.###}", x);

这将使1.2345成为1.235,1.0将被替换为1。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37499729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档