为了账号安全,请及时绑定邮箱和手机立即绑定

浮点数输出中的“%!s”是什么?

浮点数输出中的“%!s”是什么?

Go
PIPIONE 2022-01-10 16:37:16
我将坐标(位置)作为 2 个 float64 数字的输出,它看起来像这样:&{%!s(float64=42.539679) %!s(float64=42.601339)}这是我第一次看到这样的东西,那么“%!s”是什么?“TypeOf”表示“%!s(float64=42.539679)”是 float64。那么我该如何使用这种花车呢?有什么方法可以解析它,或者以某种方式使 %!s(float64=42.539679) 看起来像 42.539679?UPD:突出显示的行是来自 Syfaro 的电报机器人 api 的 *tgbotapi.Location 对象。该api具有以下结构:type Location struct {    Longitude float64 `json:"longitude"`    Latitude  float64 `json:"latitude"`}Location.Latitude 给了我这个:“%!s(float64=42.539679)”(float64)(?)
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

https://golang.org/pkg/fmt/

%!s基本上用于错误中,以帮助您识别问题。


查看完整回答
反对 回复 2022-01-10
?
千巷猫影

TA贡献1829条经验 获得超7个赞

我认为这是使用不正确格式“动词”的问题。您需要使用%f而不是%s


package main


import (

    "fmt"

)


func main() {

    var f float64 = 3.14

    fmt.Printf("attempting to print as string: %s \n", f)

    fmt.Printf("attempting to print as float: %f", f)

}

可运行:https : //play.golang.org/p/Pec_QrxBIl


查看完整回答
反对 回复 2022-01-10
  • 2 回答
  • 0 关注
  • 471 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号