【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)
}
相关推荐
不会写DN1 小时前
构建一个抗揍的 Go TCP 聊天服务:异常兜底与防御性编程实践
tcp/ip·golang·php
不会写DN4 小时前
Go中如何跨语言实现传输? - GRPC
开发语言·qt·golang
@atweiwei6 小时前
Go语言并发编程面试题精讲(下)
面试·golang·并发·channel
chenqianghqu6 小时前
golang CGO在跨平台交叉编译x86到arm64
golang
@atweiwei7 小时前
Go语言并发编程面试题精讲(上)
java·开发语言·面试·golang·channel
不会写DN7 小时前
使用 sync.Once 解决 Go 并发场景下的重复下线广播问题
开发语言·网络·golang
Gse0a362g7 小时前
Go - Zerolog使用入门
开发语言·后端·golang
不会写DN9 小时前
Protocol Buffers(.proto)实战入门:Go 生态最常用的接口定义语言
java·前端·golang
进朱者赤10 小时前
从 Java / Go 后端视角系统理解 TypeScript 与 Node.js:从看不懂到能参与 openclaw 这类项目开发
java·golang·typescript
A__tao10 小时前
告别手写!ES Mapping 自动生成 Go Struct(支持嵌套)
elasticsearch·golang·es