首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >乘以*浮点32和整数值

问乘以*浮点32和整数值
EN

Stack Overflow用户
提问于 2019-04-27 21:02:36
回答 1查看 111关注 0票数 -1

我有两个字段需要相乘。一个是*float32字段,另一个是int字段。如何将这些字段相乘?

代码语言:javascript
复制
var totalPrice *float32
var price *float32
var volume int

此代码不起作用。我得到了错误... mismatched types *float32 ...

totalPrice = price * volume

EN

回答 1

Stack Overflow用户

发布于 2019-04-28 02:20:39

您需要像explained quickly here一样使用类型转换进行转换。在这种情况下,正如mkopriva在他评论中强调的那样,您应该将volume变量的值转换为float32。

还允许显示一种在应用程序级别具有意义的处理nil值的方法,为此,我使用第二个参数编写了float32PtrToFloat(*float32,float32),该参数允许您指定应该采用什么值来代替nil。

假设nil值转换为零值,下面是完整的示例

代码语言:javascript
复制
package main

import (
    "fmt"
)

func main() {
    var totalPrice *float32
    var price *float32
    var volume int

    var total = float32PtrToFloat(price, 0) * float32(volume)
    totalPrice = &total
    fmt.Println(*totalPrice)

}

func float32PtrToFloat(price *float32, valueIfNil float32) float32 {
    if price == nil {
        return valueIfNil
    } else {
        return *price
    }
}

个人阅读,遵循JimB的建议,尽量不要使用浮点数作为货币值,因为浮点运算是不可靠的。取而代之的是使用整数值,使用1作为当前货币的下限值,例如:

  • 1 =1美分(或)
  • 1=1美分(或)
  • 1=1美分(在我的情况下)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55880818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档