konakona
学习小记—— java 中的float为什么一定要用f结尾
学习小记—— java 中的float为什么一定要用f结尾

最近在学习java的数据类型,为了更加巩固学习以及减少学习成本,我可是扎扎实实的在学喔~

 

同时还理解了一些php原本搁在一边,怎么也找不到解答的疑问。

 

在java中有一种基本数据类型叫float,单精度浮点类型。

而我发现所有的例子中,它在被赋值的过程中,总会在尾巴处被加上一个f,而且不用还会出错。
我感到很困惑,因为long和char、byte等类型都没有这样的要求。

float num;
num = 3.00; //必定提示错误:可能会丢失精确度 并无法编译
num = 3.00f; //正确 输出为 3.00
num = 3333; //正确,输出的时候是3.0

 
我最好奇的是,既然我已经申明类型为float为什么你还要我在尾部加一个数据转换的f呢?

上网找了好多资料,终于真相大白:
原来是float类型在赋值过程中会自动被认为是double类型……
这算是bug吗?我可不能轻易的就去质疑开发者的意图……嗯嗯……=w=嘛~当不知道吧~
 

我的总结意见:
尽量多用double,好处:1.不需要在屁股加上d,2.因为double的存储空间是-1.7E308~1.7E308 比float的-3.4E38~3.4E38大很多,而且日常中这个需求也较大,3.因为只有在赋予整数(没小数点的数值)时,float才不报错,那要它来何用?直接double或int了。

我初步是这么认为~记下记下~
如果大家一定想用float来处理浮点数值,那么无论如何切记赋值的时候尾部一定要加f来转换类型。

赞赏
首页      程序开发      JAVA      学习小记—— java 中的float为什么一定要用f结尾
https://secure.gravatar.com/avatar/3b712b34a0e1b689cfb524c9c6bcdc47?s=256&r=g

团哥

文章作者

继续玩我的CODE,让别人说去。 低调,就是这么自信。

发表评论

textsms
account_circle
email

  • https://secure.gravatar.com/avatar/?s=80&r=g
    匿名

    3.00默认是double 类型

    5年前回复

konakona

学习小记—— java 中的float为什么一定要用f结尾
最近在学习java的数据类型,为了更加巩固学习以及减少学习成本,我可是扎扎实实的在学喔~   同时还理解了一些php原本搁在一边,怎么也找不到解答的疑问。   在java…
扫描二维码继续阅读
2011-09-07