go语言 写出如何比较宽200高400 与宽300高400 宽200高300 哪个尺寸等比最相近
在Go语言中,可以使用以下代码来比较两个尺寸的等比相似程度:
package main
import (
"fmt"
"math"
)
type Size struct {
Width int
Height int
}
func main() {
size1 := Size{Width: 200, Height: 400}
size2 := Size{Width: 300, Height: 400}
size3 := Size{Width: 200, Height: 300}
ratio1 := math.Abs(float64(size1.Width)/float64(size1.Height) - 1)
ratio2 := math.Abs(float64(size2.Width)/float64(size2.Height) - 1)
ratio3 := math.Abs(float64(size3.Width)/float64(size3.Height) - 1)
if ratio1 < ratio2 && ratio1 < ratio3 {
fmt.Println("尺寸1最相近")
} else if ratio2 < ratio1 && ratio2 < ratio3 {
fmt.Println("尺寸2最相近")
} else {
fmt.Println("尺寸3最相近")
}
}
这段代码首先定义了一个 Size 结构体来表示尺寸,包括宽度和高度。然后,分别创建了三个尺寸对象 size1、size2 和 size3。接下来,计算了每个尺寸的宽高比,并使用 math.Abs() 函数计算了宽高比与1的差值的绝对值。
最后,通过比较这三个差值的大小,判断出哪个尺寸的宽高比与1最接近,从而得出最相近的尺寸。
运行该代码,将输出最相近的尺寸。在这个例子中,尺寸1的宽高比与1最接近,所以输出为:"尺寸1最相近"
原文地址: https://www.cveoy.top/t/topic/hNVA 著作权归作者所有。请勿转载和采集!