大神看过来,,,C# 如何比较两个数,数值小数点后有很多位小数。至少10位。。如1.2345788943324

wenyajin 2014-06-18 10:24:29
用等号无法比较。。。。有谁知道吗。。在线等。。急 先谢过各位
...全文
491 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenyajin 2014-06-18
  • 打赏
  • 举报
回复
哈哈,,谢谢各位。。。分数先来先得
灬浪子灬 2014-06-18
  • 打赏
  • 举报
回复
引用 楼主 wenyajin 的回复:
用等号无法比较。。。。有谁知道吗。。在线等。。急 先谢过各位
楼上各位的方案都可以解决你的问题 不知道你要你比较大小,还是用于计算?
MoonAndWolf 2014-06-18
  • 打赏
  • 举报
回复
能否转化为string,然后使用compareto
於黾 2014-06-18
  • 打赏
  • 举报
回复
引用 1 楼 liuchaolin 的回复:
转为双精型再做比较
不用double,根本放不下那么多小数位吧?
引用 3 楼 trfftrff 的回复:
float占4byte,精度是6~7位;double占8byte,精度是15~16位。所以得用double类型,但无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式 。
直接赋值,不用加减乘除运算,不会出现精度误差问题吧? 还有就是,楼主到底是想两个变量做比较,还是变量和常量做比较? 两个变量做比较没什么说的.变量和常量做比较要注意常量的类型,10位小数会默认为double
於黾 2014-06-18
  • 打赏
  • 举报
回复
用等号可以比较啊,怎么会无法比较? 除非是你只想比较小数点后10位,10位之后不同的忽略不同. 可以用math.Round()函数舍弃小数点后10位的部分.
努力的阿牛 2014-06-18
  • 打赏
  • 举报
回复
float占4byte,精度是6~7位;double占8byte,精度是15~16位。所以得用double类型,但无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式 。
exception92 2014-06-18
  • 打赏
  • 举报
回复
1楼正解。。。
md5e 2014-06-18
  • 打赏
  • 举报
回复
转为双精型再做比较

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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