c# - C# 四舍五入 1.998 到 1.9
问题描述
我已经阅读了许多舍入数字的示例,但没有解决我的问题...
我可能遗漏了一些明显的东西,但我尝试了:
string.Format("{0:0.0}", 1.998) = "2.0"
(1.998).ToString("0.0") = "2.0"
(1.998).ToString("0.#") = "2"
Math.Round(1.998, 1) = 2
我需要:1.9
注意:值 1.998 可能是 1.998xxx
看起来很简单,但无法得到这个结果......
解决方案
你想从我的理解中截断。试试这个:
(Math.Truncate(1.998m * 10))/10
强制decimal
而不是double
防止浮点计算出现问题。另外,请查看这篇解释 、 和 之间的舍入差异的帖子,找出最Truncate
适合您需求的帖子。Round
Floor
Ceiling
推荐阅读
- ansible - Ansible 无法将版本与 is 版本进行比较
- python - 如何使用 python 在两列中扩展具有日期范围的数据框?
- python - 将 Google Calendar API 与 Python 3.7 Google Cloud 函数一起使用
- swift - 如何将 PDF 文件从 Google Drive 下载到我的 iOS 应用程序?
- python - 为什么 Excel 不能对 openpyxl 创建的样式进行“按颜色过滤”?
- mysql - LEFT JOIN 最新记录
- linux - 如何在 shell 脚本中运行时删除单引号
- mysql - Mysql - 创建函数中的返回问题
- bash - 通过文件将多个构建参数传递给 docker
- python - Python 初学者 - SSH 和用户输入问题