如何计算具有给定小数位的浮点数?

安德鲁·沙利文

我需要一种算法来计算给定整数和小数位的浮点数。

这里有几个例子来理解我的意思:

  • Amount=484, DecimalPlaces=0 应该返回“484”
  • Amount=484, DecimalPlaces=1 应该返回“48.4”
  • Amount=484, DecimalPlaces=2 应该返回“4.84”
  • Amount=484, DecimalPlaces=3 应该返回“0.484”
  • Amount=484, DecimalPlaces=4 应该返回“0.0484”
  • Amount=484, DecimalPlaces=5 应该返回“0.00484”
  • ...

我已经有了一个算法,但我不知道如何解决前导零部分。

这是我的方法(我正在使用 golang btw):

func GetAmount(amount, places int) string {
    runes := []rune(strconv.Itoa(amount))
    result := ""
    for j := len(runes) - 1; j >= 0; j-- {
        result = string(runes[j]) + result
        if j == len(runes)-places {
            result = "." + result
        }
    }   
    return result
}

提前致谢!

科尔马西奥

可能不是最有效的,但这里有一个单行:

func GetAmount(amount, places int) string {
    return fmt.Sprintf("%.*f", places, float64(amount)/math.Pow10(places))
}

https://play.golang.org/p/ppipUqX9eSF

编辑:H/T 到@perreal 以获得单行建议!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何计算浮点数的小数位?

如何将具有 n 个小数位的整数转换为浮点数

如何计算浮点数和双精度数的小数位数?

在SwiftUI中显示具有指定小数位的浮点数

如何使用sprintf输出小于1且没有前导小数位的浮点数?

计算Swift中浮点数(或小数)的小数位数

如何格式化浮点数,最多“n”个小数位而没有尾随零

转换浮点数并保持小数位

MariaDB默认浮点数不能包含小数位

JavaScript格式的浮点数小数位数

SQL 打印带有大小数位的浮点数

将列表从 str 转换为带有超过 2 个小数位的浮点数

如何打印浮点数到n个小数位,包括尾随0?

如何将浮点数打印到n个小数位(包括尾随0)?

如何将小数位数转换为相同单位的浮点数?

在打印浮点数时,如何更精确地打印小数位?

我如何确定应使用多少小数位,用于c中的浮点数

如何在python中生成至少20个小数位的种子随机浮点数?

printf传递给变量的精度为浮点数(小数位数)的浮点数

有没有办法自动将浮点数打印到它的小数位数?

有什么方法可以使用变量而不是文字使用.format()更改浮点数的小数位数?

如何可靠地将浮点数格式化为Haxe中指定的小数位数

在Java中,如何删除整数形式的输出double的小数位,而当其为浮点数时保留它们?

如何将浮点数转换为 varchar 而不丢失小数位?SQL Server 2012

如何将浮点数四舍五入到一定数量的小数位 Python

基本浮点数和双精度支持多少个小数位?

数字输入错误地接受带小数位的浮点数

将浮点数格式化为n个小数位,且不包含尾随零

将浮点数格式化为2个小数位