在Javascript中,如何用小数对两个数字求和?

在Javascript中,如何用小数对两个数字求和?,javascript,Javascript,我有一个练习。有两个变量x=4.0和y=4.0。为什么结果是8而不是8.0 var x=4.0 变量y=4.0 var结果=x+y console.log(result)当这两个都是.0时,您需要告诉它以:结果显示数字。toFixed(1)当这两个都是.0时,您需要告诉它以:结果显示数字。toFixed(1)需要格式化您的结果。您可以使用如下代码 var x = 4.0 var y = 4.0 var result = x + y console.log(result.toFixed(1))

我有一个练习。有两个变量x=4.0和y=4.0。为什么结果是8而不是8.0

var x=4.0
变量y=4.0
var结果=x+y

console.log(result)
当这两个都是
.0
时,您需要告诉它以:
结果显示数字。toFixed(1)
当这两个都是
.0
时,您需要告诉它以:
结果显示数字。toFixed(1)
需要格式化您的结果。您可以使用如下代码

var x = 4.0
var y = 4.0
var result = x + y
console.log(result.toFixed(1)) 

需要格式化您的结果。您可以使用如下代码

var x = 4.0
var y = 4.0
var result = x + y
console.log(result.toFixed(1)) 

由于JavaScript遵循国际IEEE 754标准,理论上它只有一种类型的数字:64位双精度浮点。但在现实世界中,大多数JS引擎内部使用32位整数来节省内存并获得更高的效率。您可以使用“toFixed”来显示以下零位小数,但它在编程方式中没有任何意义,仅用于表示

您可以参考下面的链接(来自JS引擎之一的解释)
由于JavaScript遵循国际IEEE 754标准,理论上它只有一种类型的数字:64位双精度浮点。但在现实世界中,大多数JS引擎内部使用32位整数来节省内存并获得更高的效率。您可以使用“toFixed”来显示以下零位小数,但它在编程方式中没有任何意义,仅用于表示

您可以参考下面的链接(来自JS引擎之一的解释)

您的代码是正确的。您需要在显示输出时对其进行格式化。javascript中的所有数字都是浮点数,所以没有舍入。@JohnLord这没有意义,因为还有整数。JS甚至不是静态类型。。。这都是
typeof(result)='number'
。我建议您阅读说明书。其他人在他们的回答中贴出了一个链接。javascript中的每个“数字”类型都是浮点。32或64位精度。他们试图简化语言,使所有变量无论类型如何都是“var”,如果是数字,则返回“number”,但该数字的类型始终是浮点。直到最近我们才有范围级别。js by design删除了不必要的零,所以我可以理解为什么你会认为存在整数,但即使你存储“1”并读取“1”,它也是用64(或32)位表示的。你的代码是正确的。您需要在显示输出时对其进行格式化。javascript中的所有数字都是浮点数,所以没有舍入。@JohnLord这没有意义,因为还有整数。JS甚至不是静态类型。。。这都是
typeof(result)='number'
。我建议您阅读说明书。其他人在他们的回答中贴出了一个链接。javascript中的每个“数字”类型都是浮点。32或64位精度。他们试图简化语言,使所有变量无论类型如何都是“var”,如果是数字,则返回“number”,但该数字的类型始终是浮点。直到最近我们才有范围级别。js by design删除了不必要的零,所以我可以理解为什么你会认为存在整数,但即使你存储“1”并读取“1”,它也会以64(或32)位表示。是的。Java默认只显示有效数字。我做到了!但是如果我使用toFixed!的话,结果不是一个类型字符串@约翰罗德:这也不是Java;你在说什么?那是个打字错误。很明显,我指的是javascript,因为java有实际的整数、双倍数等@bryan edward通过格式化输出不会影响变量中的值。可以将其显示为格式化的字符串。基础变量仍然是number.yep。Java默认只显示有效数字。我做到了!但是如果我使用toFixed!的话,结果不是一个类型字符串@约翰罗德:这也不是Java;你在说什么?那是个打字错误。很明显,我指的是javascript,因为java有实际的整数、双倍数等@bryan edward通过格式化输出不会影响变量中的值。可以将其显示为格式化的字符串。基础变量仍然是一个数字。我做到了!!但如果我使用to,则结果是类型字符串。已修复(1)!!:(如果你在数字上转换它,那么它将得到8,你可以只添加+result.toFixed(1)或者你可以使用数字(result.toFixed(1)),因为toFixed返回类型是string。我做了!!但是如果我使用to,结果是string类型。Fixed(1)!!:(如果你在数字上转换它,那么它将得到8,你可以只添加+result.toFixed(1)来完成)或者您可以使用Number(result.toFixed(1)),因为toFixed返回类型是string。