suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php – Ich habe eine Frage zur Typkonvertierung. Ich dachte, es gäbe ein Problem, aber das Ergebnis war nicht so.

Wenn zum Beispiel der Float-Typ 2,0000000000 in int konvertiert wird, sollte der zugrunde liegende Speicher 1,999999999999999 sein. Es gibt eine Genauigkeitsgrenze. Wenn ich diese Zahl also in int umwandle, wird sie meiner Meinung nach 1 (der Dezimalteil wird verworfen)
Aber ich habe mehrere Sprachen getestet und sie sind alle korrekt (php, java, go, js)
php:

js:

go:

java:

过去多啦不再A梦过去多啦不再A梦2749 Tage vor803

Antworte allen(6)Ich werde antworten

  • 滿天的星座

    滿天的星座2017-06-12 09:21:20

    2.0是可以被浮点数精确表达的 这个数不应该出问题

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-12 09:21:20

    小数的存储用科学记数法存储,并不是1.999999...,在强转的过程中是做处理的,不是直接转换个类型

    Antwort
    0
  • 漂亮男人

    漂亮男人2017-06-12 09:21:20

    一般来说都是低精度转高精度,比如int->float,高精度转低精度,是要丢失精度,数据结果可能会变得很诧异的。

    Antwort
    0
  • 阿神

    阿神2017-06-12 09:21:20

    几个经典的例子

    (int)(0.57 * 100)

    (int)((0.1+0.7)*10)

    Antwort
    0
  • 世界只因有你

    世界只因有你2017-06-12 09:21:20

    没啥太实际的意义,假如真的是你这样想的情况运作的话,设计这门语言的人肯定会考虑到的

    具体了解需要一定的汇编原理,所以不要太钻牛角尖啦

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-06-12 09:21:20

    可以问一下,你这个编程面板是哪里下载的吗?好像不错呀

    Antwort
    0
  • StornierenAntwort