数值计算的问题

sgpxd 2010-02-23 09:49:13
程序中需要计算一个百分比的值,公式为 ((a-b)/a) * 100。
但是该值在程序中计算的结果和用计算器计算的结果不一样。

请问是什么原因?怎么解决?
...全文
73 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sgpxd 2010-02-23
  • 打赏
  • 举报
回复
因为从数据库中取出来的小数,莫名其妙的多出来2位。并且不是补零。
Justin-Liu 2010-02-23
  • 打赏
  • 举报
回复
引用 5 楼 sgpxd 的回复:
(2.08 - 1.76) / 2.08
计算器算的是0.1538
程序里算的是0.1526

(2.08-1.77)/2.08
计算器的结果是0.1490
程序里是0.1502


我算没有错啊 你用Compute计算


DataTable dt = new DataTable();
double t = Convert.ToDouble(dt.Compute("(2.08 - 1.76) / 2.08", ""));
sgpxd 2010-02-23
  • 打赏
  • 举报
回复

(2.08 - 1.76) / 2.08
计算器算的是0.1538
程序里算的是0.1526

(2.08-1.77)/2.08
计算器的结果是0.1490
程序里是0.1502
sgpxd 2010-02-23
  • 打赏
  • 举报
回复
说明下,用的是decimal类型

另:用double和float都试过了。
微工程 2010-02-23
  • 打赏
  • 举报
回复
精度的长度和位数引起。
Justin-Liu 2010-02-23
  • 打赏
  • 举报
回复
引用 1 楼 alifriend 的回复:
数值类型和精度问题呗,比如说你的a和b都是整型的,小数部分就丢了

v
波导终结者 2010-02-23
  • 打赏
  • 举报
回复
数值类型和精度问题呗,比如说你的a和b都是整型的,小数部分就丢了

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧