以下GO程序给出了错误:
./fft.go:13: constant -6.28319 truncated to integer
./fft.go:13: cannot use -7 * k / N (type int) as type float64 in assignment
程序:
package main
import (
"math"
"fmt"
)
func main() {
fmt.Println("Hello world ",math.E)
var k, N int = 1, 10
var ans float64 = 0
var c float64 = (-2.0 * math.Pi * k) / N
x := make([]float64,N)
for i := 0; i < len(x); i++ {
x[i] = 1
}
ans = 0
for i := 0; i < N; i++ {
ans += x[i] * math.E
}
fmt.Println(ans)
}
为什么我不能使用int
in类型float64
?
更换
var c float64 = (-2.0 * math.Pi * k) / N
通过
var c float64 = (-2.0 * math.Pi * float64(k)) / float64(N)
引用规范:
当表达式或赋值中混合了不同的数字类型时,需要进行转换。例如,即使int32和int在特定体系结构上可能具有相同的大小,它们也不是同一类型。
Go使用静态类型输入,不会自动在数字类型之间转换。原因可能是为了避免某些错误。例如,应该float64(2.5) * int(2)
产生什么值和什么类型?结果应该是int(5)
吗? int(4)
? float64(5.0)
?在Go中,这不是问题。Go
FAQ对此还有更多话要说。
@jnml指出,在这种情况下,以下足够了:
var c float64 = -2 * math.Pi / float64(N)
django版本3.0.5 mongo版本4.4.6 settings.py 当我在mongod.conf中启用授权时 并尝试迁移,我得到以下错误 pymongo.errors.OperationFailure: command listCollections 需要身份验证, 完整错误: {'ok': 0.0, 'errmsg': 'command listCollections require
问题内容: 我有一个控制器,可提供对信息的RESTful访问: 我遇到的问题是,如果我使用带有特殊字符的路径变量访问服务器,则会被截断。例如: http:// localhost:8080 / blah-server / blah / get / blah2010.08.19-02:25:47 参数blahName将为blah2010.08 但是,对request.getRequestURI()的
问题内容: 简单明了,有人知道为什么吗: 返回 220 ,这是正确的结果,并且: 返回 210 ??? 在第二种情况下,我意识到首先要计算220/30,生成一个十进制数(7,333333 …),但仍然…这不是很糟糕的精度吗? 问题答案: 在整数除法和下(注意截断不舍入) 使用非整数可以避免这种情况。例如 或者您可以使用显式
问题内容: 我想要一种计算Java中任意两个整数x,y的方法。如果x + y> Integer.MAX_VALUE或<Integer.MIN_VALUE,那么幼稚的方法就会遇到问题。 番石榴 使用此技术: …但这朝着负无穷大方向舍入,这意味着例程与{-1,-2}之类的天真方式不同(给出-2而不是-1)。 是否有任何相应的例程截断为0? “仅使用”不是我想要的答案,因为我也想要一种适用于长时间输入的
问题内容: 在更改MySql列的数据类型以存储Twilio调用 ID(34个字符字符串)之后,我尝试使用以下方法手动更改该列中的数据: 但是,我看到一个错误,因为正确修改了列的数据类型,所以没有意义吗? 问题答案: 您的问题是,目前您的栏定义为应在何时。 要解决此问题,只需发出此命令即可将列的长度从1更改为34 这是 SQLFiddle 演示
问题内容: 我正在尝试从服务器获取JSON响应,并且当字符串长度达到约5525个字符时,响应字符串似乎总是被截断。 我还通过使用HttpEntity并读取响应流进行了尝试。但这也会在大约该长度处截断字符串。 请让我知道如何处理此问题。创建此文章时,我将其作为参考。 http://senior.ceng.metu.edu.tr/2009/praeda/2009/01/11/a-simple-rest