草庐IT

GL_FLOAT

全部标签

go - 是否有可能在 Golang 中有一个返回 Integer 或 Float 的函数?

我想创建一个函数,如果条件在函数内部传递,则返回一个整数值,否则返回一个float。我该如何用Go处理这个问题?谢谢! 最佳答案 这在Golang中是不可能直接实现的。一般来说,静态类型语言通常会尽力防止这种情况发生,因为它会使类型检查变得非常困难。类型检查是必要的,因为整数和float本质上是不兼容的。您可以返回interface{}。但是,调用者如何知道您返回了什么? 关于go-是否有可能在Golang中有一个返回Integer或Float的函数?,我们在StackOverflow上

go - 为什么在这种情况下 float32 比 float64 更准确?

如果我运行以下Go代码:fmt.Println(float32(0.1)+float32(0.2))fmt.Println(float64(0.1)+float64(0.2))输出是:0.30.30000000000000004看起来float32求和的结果比float64求和的结果更准确,为什么?我认为float64总是比float32更精确。我如何决定选择哪一个以获得最准确的结果? 最佳答案 事实并非如此。fmt.Println只是让它看起来更精确。Println使用%g来表示float和复数。Thedocssay...Thed

json - 无法将 float32 值解码为字符串

我有一个JSON响应,它返回created字段的UNIX时间戳值:"created_utc":1395800038.0---//ThetypeIusetomarshaltheresponseJSON.//Ican'tusestringbecauseGolangcomplainstheJSONisafloat.typeSubmissionstruct{CreatedUtcfloat32`json:"created_utc"`}我想将其转换为实际的Time对象:constlongForm="Jan2,2006at3:04pm(MST)"created_at,_:=time.Parse(lo

go - 精度乘以 big.Float 的奇怪损失

如果您将字符串解析为big.Float,如f.SetString("0.001"),然后将其相乘,我会发现精度有所下降。如果我使用f.SetFloat64(0.001),我不会失去精度。即使执行strconv.ParseFloat("0.001",64),然后调用f.SetFloat()也能正常工作。我在这里看到的完整示例:https://play.golang.org/p/_AyTHJJBUeL从这个问题展开:https://stackoverflow.com/a/47546136/105562 最佳答案 输出的差异是由于floa

go - 如何将字符串 "210.0n"转换为 float

我有以下格式的字符串值:“210.0n”,我需要将它与值“2.1e-07”进行比较。直接比较当然会失败。有什么方法可以将像“210.0n”、“0.7m”、“10.0K”(带有单位度量)这样的字符串转换为正常的浮点值?也许专用的Go模块可用?我找不到它。 最佳答案 您可以自己在一个简单的switchcase中编写它。不需要图书馆。varstr="100k"mFloat,err:=strconv.ParseFloat(str[:len(str)-1],64)iferr!=nil{//handleerror}switchstring(st

go - 如何在 Golang 中将 float64 转换为 c99 十六进制字符串?

如何在Golang中将float64转换为十六进制字符串(遵循c99标准)?-561.2863到-0x1.18a4a57a786c2p9 最佳答案 例如,packagemainimport("fmt""math/big")funcmain(){f:=new(big.Float).SetFloat64(-561.2863)fmt.Println(f)t:=f.Text('p',0)fmt.Println(t)g,ok:=new(big.Float).SetString(t)if!ok{fmt.Println("error")}fmt.

json - 需要将 JSON 中的整数解析为整数,而不是 float

首先让我解释一下这个问题。我的Golang应用程序中有一个JSON记录流。它基本上将这些转发到数据存储(InfluxDB)。JSON中有一些整数值,也有一些浮点值。必须将这些转发到具有原始数据类型的数据存储。如果他们不这样做,就会发生类型冲突,写操作就会失败。RubyJSON解析器可以毫不费力地执行此操作:require'json'obj={"a"=>123,"b"=>12.3}parsed=JSON.parse(obj.to_json)printparsed["a"].class#=>Integerprintparsed["b"].class#=>FloatGolang中的encod

go - 乘以 *float32 和 int 值

我有2个字段需要相乘。一个是*float32字段,另一个是int字段。如何乘以这些字段?vartotalPrice*float32varprice*float32varvolumeint此代码无效。我收到错误...mismatchedtypes*float32...totalPrice=price*volume 最佳答案 您需要按原样使用类型转换转换explainedquicklyhere.在这种情况下,正如mkopriva在他的评论中强调的那样,您应该将volume变量的值转换为float32。还允许显示一种处理在应用程序级别有意

go - 将 []byte 数组(java 双编码)转换为 Float64

因此,我正在尝试将字节数组解码为Float64。我尝试了很多不同的方法,在整个StackOverflow上都找到了,但到目前为止还没有成功!Here'sthegoplaygroundlinktowhatIhavetried.预期值应为3177408.5。原始值是Javadouble,编码为IEEE754float编辑:该值使用org.apache.hadoop.hbase.util.Bytes.toBytes方法进行编码。doublev=3445713.95;longff;ff=Double.doubleToRawLongBits(v);bArr=toBytes(ff)publicst

go - Go 中的 128 位 float - 相当于 C#'s "decimal"Type

简单的问题:是否有C#的decimal的等价物?输入Go标准库?我打算使用此类型与在某些端点返回小数的ODataAPI接口(interface),据我阅读,complex128不适合此行为(它的存储不同于花车) 最佳答案 标准库的math/big包括一个Floattype:AnonzerofiniteFloatrepresentsamulti-precisionfloatingpointnumber 关于go-Go中的128位float-相当于C#'s"decimal"Type,我们在S