关于float.parse的精度

xdhis 2012-03-05 12:26:25
str_money1="4053585.57"
float y3 = float.Parse(str_money1)

为什么转换成float之后y3=4053585.50,如何设置float的精度呢,我想转换后得到的值还是4053585.57
...全文
691 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdhis 2012-03-05
  • 打赏
  • 举报
回复
但是现在没办法换成其它类型.data3[i] = new PointF(i * 5, y3) 中PointF的参数只能接收float类型
gomoku 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xdhis 的回复:]
不能改变float类型的情况,实现精度不变,小数点保留两位.
[/Quote]

:)
如果float可以通吃的话,为什么我们还需要用double?为什么还要decimal?为什么要BitInteger?
xdhis 2012-03-05
  • 打赏
  • 举报
回复
不能改变float类型的情况,实现精度不变,小数点保留两位.
gomoku 2012-03-05
  • 打赏
  • 举报
回复
decimal d2 = decimal.Parse(str_money1);
xdhis 2012-03-05
  • 打赏
  • 举报
回复
找到原因了,的确是因为传进来的值超出了float的范围,我把传进来的值除了一万,小数点就能正常显示了.谢谢各位.
EnForGrass 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xdhis 的回复:]

但是现在没办法换成其它类型.data3[i] = new PointF(i * 5, y3) 中PointF的参数只能接收float类型
[/Quote]
万一y3传过来的值超过了float的范围呢?
David8977 2012-03-05
  • 打赏
  • 举报
回复
   string str_money1="4053585.57";
double y3 = Convert.ToDouble(str_money1);

110,536

社区成员

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

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

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