英文:
golang how to remove %!d(string= in string
问题
我有这样的代码:
newStr := fmt.Sprintf("new price: %d€", newPrice)
fmt.Println(newStr) // new price: %!d(string=500.00)€
// 但我想要的是:new price: 500,00€
如何去掉字符串末尾的 %!d(
和 )
,使其变成 new price: 500,00€
?
我可以使用 strings.Replace
来格式化,但我不认为这是正确的答案。
我的 newPrice
是一个浮点数。
我相信这个问题已经被问过了,但是很难在谷歌上找到这些东西。
英文:
I have this:
newStr := fmt.Sprintf("new price: %d€", newPrice)
fmt.Println(newStr) // new price: %!d(string=500.00)€
// except I want: new price: 500,00€
How to remove the %!d(
and the )
at the end of the string so it can be like this new price: 500,00€
I could use a format the strings.Replace
but I don't think it's the good answer.
My newPrice
is a float.
I'm pretty sure it as already been ask but it's hard to google those kind of things.
答案1
得分: 6
问题在于你在调用fmt.Sprintf()
时,使用了%d
来表示整数值,但实际传递的是一个浮点数值(500.00)。
尝试使用以下代码:
newStr := fmt.Sprintf("新价格:%f€", newPrice)
fmt.Println(newStr)
这样应该可以解决问题。
英文:
The problem is that you're using %d
for an integer value in your call to fmt.Sprintf()
, but passing a floating-point value (500,00).
Try this:
newStr := fmt.Sprintf("new price: %f€", newPrice)
fmt.Println(newStr)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论