当前位置: 首页 > 面试题库 >

如何在Go中将int64转换为int?

艾凯捷
2023-03-14
问题内容

在围棋,什么是转换的最佳策略int64int?我很难比较两者

package main

import (
    "math"
    "strings"
    "strconv"
)

type largestPrimeFactor struct {
    N      int
    Result int
}

func main() {
    base := largestPrimeFactor{N:13195}
    max := math.Sqrt(float64(base.N))

    maxStr := strconv.FormatFloat(max, 'E', 'G', 64)
    maxShift := strings.Split(maxStr, ".")[0]
    maxInt, err := strconv.ParseInt(maxShift, 10, 64)

    if (err != nil) {
        panic(err)
    }

在下一行

    for a := 2; a < maxInt; a++ {
        if isPrime(a) {
            if base.N % a == 0 {
                base.Result = a
            }
        }
    }

    println(base)
}

func isPrime(n int) bool {
    flag := false

    max := math.Sqrt(float64(n))

    maxStr := strconv.FormatFloat(max, 'E', 'G', 64)
    maxShift := strings.Split(maxStr, ".")[0]
    maxInt, err := strconv.ParseInt(maxShift, 10, 64)

    if (err != nil) {
        panic(err)
    }

    for a := 2; a < maxInt; a++ {
        if (n % a == 0) {
            flag := true
        }
    }
    return flag
}

问题答案:

您将其转换为类型“转换”

var a int
var b int64
int64(a) < b

比较值时,您始终希望将较小的类型转换为较大的类型。转换为其他方式可能会截断该值:

var x int32 = 0
var y int64 = math.MaxInt32 + 1 // y == 2147483648
if x < int32(y) {
// this evaluates to false, because int32(y) is -2147483648

或者,将maxInt int64值转换为int,可以使用

for a := 2; a < int(maxInt); a++ {

如果系统上类型maxInt的最大值溢出,则将无法正确执行int



 类似资料:
  • 问题内容: 尝试在Swift中调用dispatch_time实在令人难以理解,原因如下: 结果为错误:“找不到接受提供的参数的’*’重载”。 NSEC_PER_SEC是UInt64,因此可以进行一些实验: 结果与上述相同 “一行上的连续语句中的结果必须用’;’分隔” 结果为“预期的’,’分隔符” “一行上的连续语句中的结果必须用’;’分隔” 等等 该死的Swift编译器,我放弃了。如何将UInt6

  • 问题内容: 我试图将列从数据类型转换为使用: 但出现错误: NameError:未定义名称“ int64” 专栏有人数,但其格式为:我知道如何将其更改为? 问题答案: 大熊猫 0.24+的 解决方案,用于转换缺少值的数字: ValueError:无法将非限定值(NA或inf)转换为整数 我认为您需要转换为: 样品: 如果某些S IN列需要他们取代一些(例如)通过,因为的是: 同时检查文档-缺少数据

  • 问题内容: 我有一个我使用的,因为我想在逻辑上区分不同类型的字节。 我可以轻松地进行转换, 但我找不到转换或转换切片的方法:失败。 这样的事情可能吗?内存中的位是相同的(对吗?),因此应该采取某种方法,除非逐字节复制到新对象中。 例如,这些都不起作用:http : //play.golang.org/p/WPhD3KufR8 问题答案: 您不能将自己的myByte的片转换为字节的片。 但是您可以拥

  • 问题内容: 嗨,我有一个NSMutableArray,我尝试这样做: 如何将Int64变量添加到NSMutableArray()? 问题答案: 您正在使用基础数组(NSMutableArray),因此应使用基础编号对象: 您还可以使用本机swift数组:

  • 我想将字符串转换为int64。我从<code>strconv ParseInt实际上返回一个int64: 所以如果我想从一个字符串中获取一个int64,我应该避免使用Atoi,而是使用ParseInt吗?还是有Atio64藏在某个地方?

  • 问题内容: 目前,我目前正在处理一些代码,其中涉及类型为var的 它具有价值,我可以像这样轻松访问: 很好,但是我希望能够使用该 函数,由于它需要type 而不是type ,因此通常会出错。 可以使用该功能的最合适的解决方案是什么,我想也许是某种转换方法? 问题答案: 您需要构造一个新的type数组才能使用: 请参阅相关的Golang常见问题解答条目:我可以将[] T转换为[]接口{}吗?