【GO】类型转换练习题

商品价格计算

题目描述

电商平台中,商品的库存数量是整数类型,而单价是浮点数类型。需要将库存数量转换为浮点数,计算总价值;同时将计算出的总价值(浮点数)转换为整数(金额分)进行结算。

  • 定义整数变量 stock(库存数量)= 250,浮点数变量 price(单价,元)= 99.99
  • stock 转换为 float64 类型,计算总价值 totalPrice = float64(stock) * price
  • totalPrice 转换为 int 类型(代表金额分,需先乘以 100)
  • 输出原始数值、总价值(保留 2 位小数)、转换后的金额分(整数)

输出示例

商品总价值(元):24997.50

总价值(分,整数):2499750

实现代码

Go 复制代码
package main

import (
	"fmt"
	"math"
)

func main() {
	// 1. 定义基础变量
	stock := 250          // 整数:库存数量
	price := 99.99        // 浮点数:商品单价(元)

	// 2. 整数转浮点数,计算总价值
	totalPrice := float64(stock) * price
	fmt.Printf("商品总价值(元):%.2f\n", totalPrice)

	// 3. 浮点数转整数(先乘以100转换为分,再取整)
	totalPriceCent := int(math.Round(totalPrice * 100)) // Round 避免精度丢失导致的误差
	fmt.Printf("总价值(分,整数):%d\n", totalPriceCent)
}

用户 ID 处理

题目描述

用户在前端输入的 ID 是字符串类型(如表单输入),后端存储和计算时需要转换为整数;同时,将数据库中存储的整数 ID 转换为字符串,用于生成用户专属链接。

  • 定义字符串变量 idStr = "10086",将其转换为 int 类型变量 idInt
  • 定义整数变量 userId = 9527,将其转换为字符串类型变量 userIdStr
  • 输出转换前后的数值及类型信息

输出示例

字符串ID "10086" 转换为整数:10086

整数ID 9527 转换为字符串:"9527"

实现代码

Go 复制代码
package main

import (
	"fmt"
	"strconv"
)

func main() {
	// 1. 字符串转整数
	idStr := "10086"
	idInt, _ := strconv.Atoi(idStr) // Atoi = ASCII to integer
	fmt.Printf("字符串ID \"%s\" 转换为整数:%d\n", idStr, idInt)

	// 2. 整数转字符串
	userId := 9527
	userIdStr := strconv.Itoa(userId) // Itoa = integer to ASCII
	fmt.Printf("整数ID %d 转换为字符串:\"%s\"\n", userId, userIdStr)
}
相关推荐
何以解忧,唯有..13 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
踏着七彩祥云的小丑13 天前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
JCGKS13 天前
Go `init` 函数:包初始化顺序到底是怎样的
golang·init·init执行顺序
何以解忧,唯有..13 天前
Go语言中的const:常量声明与iota枚举详解
java·开发语言·golang
geovindu13 天前
go: Reactor Pattern
开发语言·后端·设计模式·golang·反应器模式
記億揺晃着的那天13 天前
Java 调用外部 Go 程序的实践:ProcessBuilder 在生产环境中的应用
java·golang·processbuilder
jingling55514 天前
go | 环境安装和快速入门
开发语言·后端·golang
java_cj14 天前
从kubectl学Visitor模式:如何优雅处理多态数据结构的遍历
云原生·golang·k8s·访问者模式
何以解忧,唯有..14 天前
Go语言类型转换详解:从基础到进阶实践
开发语言·后端·golang
何以解忧,唯有..14 天前
Go 语言指针类型详解:从基础到实战
开发语言·后端·golang