首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设定精度c#

设定精度c#
EN

Stack Overflow用户
提问于 2018-06-10 01:42:31
回答 1查看 765关注 0票数 2

是否可以为项目中包含的所有双值在c#中设置双值的精度?我有很多价值观,用Math.Round来改变它们会让我精疲力竭。例如,我需要双倍值为5.12345而不是5.123455123321321。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 01:46:48

这是浮点类型的一个基本限制。double实际上是内部存储为符号指数和尾数,指数是基2,所以处理基数10有很多困难。

最简单的解决方案是使用基本的10 64位浮点类型,即decimal。它仍然是浮点,它仍然是有限的精度,但它是非常友好和更准确的工作在许多情况下。

更新

如果您只想更改显示输出,您可以使用舍入(您知道),也可以使用适当的格式说明符string.format ToString或字符串内插。

示例

代码语言:javascript
复制
var number = 5.123455123321321;
Console.WriteLine(number.ToString("F3", 
                  CultureInfo.InvariantCulture));
Console.WriteLine($"{number:F3}");
// Displays 5.123
// Displays 5.123
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50779916

复制
相关文章

相似问题

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