【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)
}
相关推荐
喵了几个咪11 小时前
GoWind Flow 拆解:一个 Go 工作流引擎与它的双模式设计器
开发语言·人工智能·后端·golang
codeejun12 小时前
每日一Go·MySQL-14、慢 SQL 产生原因全解
sql·mysql·golang
利威尔xu3 天前
Go map 底层崩溃:3 个 goroutine 并发写同一张 map,fatal error 崩掉整个服务
golang·源码·map·并发·后端开发
利威尔xu5 天前
2026-11-08-Go-defer-panic-recover面试
面试·golang
JWASX5 天前
【Go】map 源码解析 - group
后端·golang·map·源码分析
联犀6 天前
纯 Go 的 CAD 开源库 go-cad:直接解析 DWG/DXF,现在也能导出 PDF
开发语言·golang·pdf
FungLeo6 天前
成为全栈·Go 后端篇·三轮代码审阅之后:把可读性和证据做成工程规则
golang·go·ast·静态检查·成为全栈·代码审阅
联犀6 天前
联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms
开发语言·golang·音视频
紧跟先前的步伐7 天前
Go AI Agent 实战 28|Agent 的预算、超时与停止条件
开发语言·人工智能·后端·ai·golang
利威尔xu7 天前
2026-11-05-Go内存管理面试
面试·golang