首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Float / Float =奇怪结果

Float / Float =奇怪结果
EN

Stack Overflow用户
提问于 2012-06-27 05:20:49
回答 2查看 464关注 0票数 3

我有两个值,一个来自用户输入,另一个来自DB。

代码语言:javascript
运行
复制
var userinput = form["someInput"];
var valuefromDB = GetValue(someNumber);

public float? GetValue(int id){
return (float?) db.table.where(p=> p.id == id).select(p=> p.Value).SingleOrDefault();
}

userinput具有值"1“作为字符串,而valuefromDB具有值0.001作为浮点数。

所以1/ 0.001 = 1000

但是我的c#代码给我的结果是999.999939;

代码语言:javascript
运行
复制
var final = float.Parse(userinput) / valuefromDB

当我有"2“作为用户输入值时,结果是正确的,2000...

EN

回答 2

Stack Overflow用户

发布于 2012-06-27 05:22:36

这是因为并不是所有的十进制数都可以用二进制(即the representation that float uses)准确地表示。解决方案是将结果格式化为所需的小数位数,这将导致结果被四舍五入并“正确”显示。

更新:要格式化float以进行显示,请查看this MSDN reference pagethis page of examples

票数 9
EN

Stack Overflow用户

发布于 2012-06-27 05:24:17

对于float不提供的纯精度,请使用decimal。

请参阅What is the difference between Decimal, Float and Double in C#?

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

https://stackoverflow.com/questions/11216095

复制
相关文章

相似问题

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