当前位置: 首页 > 面试题库 >

int((0.1 + 0.7)* 10)= 7种几种语言。如何预防呢?

缪嘉志
2023-03-14
问题内容

最近,我遇到了几种语言的错误/功能。我对它的产生有非常基本的了解(我想作一些详细的解释),但是当我想到多年来我必须犯下的所有错误时,问题是我如何确定“
嘿,这可能会导致一个荒谬的错误,我最好使用任意精度函数 “,其他语言确实有此错误(以及那些没有的语言, 为什么
)。另外,为什么这样做0.1 + 0.7,而不是0.1 + 0.3,是否还有其他众所周知的示例

的PHP

//the first one actually doesn't make any sense to me,
//why 7 after typecast if it's represented internally as 8?
debug_zval_dump((0.1+0.7)*10); //double(8) refcount(1)
debug_zval_dump((int)((0.1+0.7)*10)); //long(7) refcount(1)
debug_zval_dump((float)((0.1+0.7)*10)); //double(8) refcount(1)

蟒蛇:

>>> ((0.1+0.7)*10)
7.9999999999999991
>>> int((0.1+0.7)*10)
7

Javascript:

alert((0.1+0.7)*10); //7.999999999999999
alert(parseInt((0.7+0.1)*10)); //7

红宝石:

>> ((0.1+0.7)*10).to_i                                                  
=> 7                                                                    
>>((0.1+0.7)*10)                                                       
=> 7.999999999999999

问题答案:

每个计算机科学家都应了解的浮点运算法则



 类似资料:
  • 问题内容: 最近,我遇到了几种语言的错误/功能。我对它的产生有非常基本的了解(我想作一些详细的解释),但是当我想到多年来我必须犯下的所有错误时,问题是我如何确定“ 嘿,这可能会导致一个荒谬的错误,我最好使用“任意精度函数 ”,其他语言确实有此错误(以及那些没有的语言, 为什么 )。另外,为什么这样做没有0.1 + 0.7,而没有做到0.1 + 0.3,还有其他众所周知的例子吗? 的PHP 蟒蛇:

  • 语言是一种规范,要想使用它,需要将其实体化,用编译原理的话讲,可以大致分为编译器和解释器,而根据之前说的,如果把目标代码的解释过程看做解析过程,比如x86机器指令load到cpu时,根据不同的指令进行不同的运算,以及字节码的分派等,这个界限是模糊的 因此,这个事情可以这么讲,假设我们已经有一台机器M,它可以接收A语言并完成计算工作,则对于高级语言B来说,我们只要将其转换成A语言即可。根据实际情况,

  • 本文向大家介绍Python的另外几种语言实现,包括了Python的另外几种语言实现的使用技巧和注意事项,需要的朋友参考一下 Python自身作为一门编程语言,它有多种实现。这里的实现指的是符合Python语言规范的Python解释程序以及标准库等。这些实现虽然实现的是同一种语言,但是彼此之间,特别是与CPython之间还是有些差别的。 下面分别列出几个主要的实现。 1.CPython:这是Pyth

  • 我想用一种语言训练卷积神经网络,但在另一种语言中使用它(出于各种技术/性能相关的原因)。有没有一种程序化的方法可以通过保存权重来做到这一点? 例如,我可以用Python训练一个多层感知器,然后将所有权重保存在CSV文件中,然后用Java制作一个新的MLP,并使用该文件设置权重。然而,我不确定如何用卷积神经网络做类似的事情,因为我不知道如何处理卷积层。我认为我的主要问题是理解如何导出/保存网络的卷积

  • 问题内容: 我正在使用jsp和java编写程序,如何使用属性文件支持多种语言?顺便说一句,总是有\ u4345之类的东西,这是什么?他们怎么来的? 问题答案: 对于多种语言,请签出ResourceBundle类。 关于,这是Java黑暗而令人讨厌的遗留角落之一。属性文件必须使用ASCII,因此所有非ASCII字符都需要编码为(其Unicode值)。您可以使用native2ascii命令行工具将文件